JS Redirect Berdasarkan Device/IP
Oke langsung saja berikut kodenya.
fetch('https://ipapi.co/json/')
.then(response => response.json())
.then(data => {
// Jika Di Akses menggunakan HP+IP Indo
if (/Mobi/.test(navigator.userAgent) && data.country == 'ID') {
window.location = 'https://example.com/mobile-indonesia';
}
// Jika orang tersebut menggunakan HP
else if (/Mobi/.test(navigator.userAgent)) {
window.location = 'https://example.com/mobile';
}
// Jika orang tersebut menggunakan IP Indo
else if (data.country == 'ID') {
window.location = 'https://example.com/indonesia';
}
});
Berikut jika ingin di akses melalui ip indonesia saja.
fetch('https://ipapi.co/json/')
.then(response => response.json())
.then(data => {
if (data.country == 'ID') {
window.location = 'https://example.com/indonesia';
}
});
dan berikut jika ingin di akses melalui mobile phone saja
if (/Mobi/.test(navigator.userAgent)) {
window.location = "https://example.com/mobile";
}
kode di atas mungkin kurang powerfull, oleh karena itu kita coba dengan cara berikut ini yaitu dengan bantuan pihak ketiga sebagai pendeteksi device nya.
<!DOCTYPE html>
<html>
<head>
<title>Contoh Redirect ke Halaman Mobile</title>
</head>
<body>
<h1>Selamat datang di situs web kami!</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/UAParser.js/1.0.33/ua-parser.min.js"></script>
<script>
function redirectToMobileSite() {
const ua = UAParser(navigator.userAgent);
const isAndroid = ua.os.name === 'Android';
const isiPhone = ua.os.name === 'iOS';
if (isAndroid || isiPhone) {
fetch('https://ipapi.co/json/')
.then(response => response.json())
.then(data => {
const country = data.country.toLowerCase();
if (country === 'id') {
window.location.href = 'https://example.com/mobile'; // ganti dengan link halaman mobile Anda
}
})
.catch(error => console.error(error));
}
}
redirectToMobileSite();
</script>
</body>
</html>
Berikut ini Kode Modifikasi Random Link Dengan Kode yang berbeda tanpa javascript.
<script>
// Daftar link tujuan
const linkTargets = [
"https://linktarget1.com",
"https://linktarget2.com",
"https://linktarget3.com"
];
// Mendapatkan alamat IP pengguna dari browser
const userIpPromise = fetch('https://api.ipify.org/?format=json')
.then(response => response.json())
.then(data => data.ip);
// Memanggil API ipwhois untuk memeriksa lokasi pengguna berdasarkan alamat IP
const checkLocation = async () => {
try {
const userIp = await userIpPromise;
const ipwhoisUrl = `https://ipwhois.app/json/${userIp}`;
const response = await fetch(ipwhoisUrl);
const ipwhoisData = await response.json();
// Mendapatkan user agent dari HTTP header
const userAgent = navigator.userAgent;
// Memeriksa apakah key "country_code" tersedia dalam objek ipwhoisData
if (ipwhoisData.country_code) {
const countryCode = ipwhoisData.country_code;
// Memeriksa apakah alamat IP berasal dari Indonesia dan user agent berasal dari ponsel Android
if (countryCode === "ID" && userAgent.includes('Android') && !userAgent.includes('Nexus') && !userAgent.includes('Pixel') && !userAgent.includes('Googlebot') && !userAgent.includes('Google AdsBot')) {
window.location.href = linkTargets[Math.floor(Math.random() * linkTargets.length)];
}
}
} catch (error) {
console.error(error);
}
};
checkLocation();
</script>