Panduan lokasi IP dengan JavaScript
Ambil lokasi satu alamat IP dari browser atau Node.js.
Mencari alamat IP dengan JavaScript
Permintaan menerima satu alamat IPv4 atau IPv6 dan meminta JSON. Ganti alamat contoh dengan alamat yang perlu diperiksa.
const ip = '8.8.8.8'; // Replace with an IPv4 or IPv6 address.
const response = await fetch(
'https://api.ipquery.io/' + encodeURIComponent(ip) + '?format=json',
{ signal: AbortSignal.timeout(8000) }
);
if (!response.ok) throw new Error('IPQuery returned HTTP ' + response.status);
const data = await response.json();
if (data.ip !== ip || !data.location || !data.isp) {
throw new Error('Unexpected IPQuery response');
}
console.log(data.location.country, data.location.city, data.isp.asn);Jalankan di browser modern atau Node.js yang mendukung fetch dan AbortSignal.timeout. Permintaan dari browser mengidentifikasi alamat yang Anda berikan; endpoint IP sendiri mengidentifikasi alamat koneksi browser.
Membaca kolom lokasi dan jaringan
location.country dan location.country_code menunjukkan perkiraan negara. location.city dapat kosong atau tidak akurat. isp.asn mengidentifikasi jaringan, yang dapat berbeda dari orang atau perusahaan yang menggunakan alamat tersebut.
Untuk mendapatkan alamat asal permintaan, panggil https://api.ipquery.io/?format=json. Permintaan dari server mengembalikan IP yang digunakan server untuk terhubung; permintaan dari browser mengembalikan alamat koneksinya yang terlihat dari luar.
Menggunakan IPQuery di Dashy
Widget Public IP Dashy mendukung IPQuery tanpa kunci API. Tambahkan entri ini ke daftar widgets di salah satu bagian Dashy Anda:
- type: public-ip
options:
provider: ipquerySaat pengaturan proxy Dashy dinonaktifkan, browser mengirim permintaan dan widget menampilkan IP publik serta perkiraan lokasi koneksi tersebut. Mengatur useProxy: true di tingkat teratas widget, atau mengaktifkan appConfig.widgetsAlwaysUseProxy, mengirim permintaan melalui server Dashy dan menampilkan IP publik server sebagai gantinya. Mengatur useProxy: false di tingkat teratas widget tidak mengesampingkan pengaturan untuk seluruh dasbor.
Widget menggunakan endpoint IP sendiri milik IPQuery. Untuk memeriksa alamat lain, gunakan permintaan JavaScript untuk satu IP di atas.
Opsi widget Public IP DashyAkurasi dan keamanan
Geolokasi IP merupakan perkiraan lokasi jaringan, bukan lokasi perangkat. VPN, proxy, jaringan seluler, dan gateway operator dapat menempatkan alamat jauh dari pengguna. Perlakukan nilai yang tidak tersedia sebagai tidak diketahui, bukan mengisinya dengan tebakan.
Jika aplikasi membaca X-Forwarded-For, percayai nilainya hanya jika diberikan oleh proxy yang Anda kendalikan. Header yang diberikan klien dapat dipalsukan. Validasi alamat sebelum melakukan permintaan pencarian dan tangani batas waktu serta kesalahan HTTP secara terpisah dari hasil yang berhasil.
Referensi API