Bagaimana saya bisa menentukan lokasi pengunjung ke situs web saya?

19

Jika saya ingin memberikan situs web dengan konten yang sesuai lokasi, cara apa yang dapat saya gunakan untuk menemukan lokasi kasar pengunjung menggunakan informasi IP atau header mereka?

JamesRyan
sumber
maxmind.com/app/ip-location
Christopher Schmidt
4
Anda seharusnya mengajukan pertanyaan ini di StackOverflow.com .
Jonas
7
Saya pikir akan selalu ada pertanyaan crossover yang sesuai untuk keduanya. Tetapi jawaban di sini dengan perspektif GIS mungkin berbeda dengan jawaban di sana dengan perspektif pemrograman.
JamesRyan

Jawaban:

12

Pertama, Anda harus tahu bahwa keakuratan layanan ini, dan akan selalu, rendah.

Kota MaxMind Geolite gratis . Jika tidak cukup baik, Anda tampaknya dapat meningkatkan ke versi berbayar yang lebih akurat. Saya tidak dapat berbicara untuk kualitas versi berbayar, karena saya belum pernah menggunakannya.

Jika Anda suka SQL, unduh versi CSV . Muat ke dalam basis data pilihan Anda, dan tinggalkan.

Opsi yang lebih cepat dan hemat-ruang adalah mengunduh versi gumpalan biner file dari database yang sama, dan kemudian menggunakan API khusus bahasa dari situs web yang sama untuk menanyakannya.

Atau, saya menemukan ipinfodb.com berguna. Permintaan adalah dengan GET HTTP sederhana. Misalnya, untuk melakukan geolokasi stackoverflow.com, cobalah:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211

Ini akan mengembalikan file XML yang berisi lintang dan bujur, yang terlihat seperti:

<Response>
  <Ip>69.59.196.211</Ip>
  <Status>OK</Status>
  <CountryCode>US</CountryCode>
  <CountryName>United States</CountryName>
  <RegionCode>41</RegionCode>
  <RegionName>Oregon</RegionName>
  <City>Corvallis</City>
  <ZipPostalCode>97333</ZipPostalCode>
  <Latitude>44.4698</Latitude>
  <Longitude>-123.343</Longitude>
</Response>
fmark
sumber
5 tahun kemudian .... Bisakah seseorang memperbarui jawaban ini? Posting jawaban baru?
Dror Atariah
5 tahun kemudian sebagian besar sistem geoid tidak berguna karena mereka tidak dapat menemukan pengguna seluler dengan benar ...
Mike Szyndel
9

Lokasi yang Anda dapat simpulkan dari IP tidak terlalu andal (artinya kadang-kadang berfungsi).

Jika Anda ingin lokasi yang dapat diandalkan, pertimbangkan API geolokasi yang merupakan bagian dari HTML5 . Perhatikan, bagaimanapun, bahwa tidak semua browser web mendukungnya (belum).

Sean
sumber
1
+1 untuk HTML5. Anda selalu dapat menggunakan keduanya - jika API geoloasi gagal, kembalilah ke IP. Lebih banyak dukungan situs web berarti lebih banyak tekanan pada vendor browser untuk mendukung teknologi yang lebih baik.
naught101
Tapi kita berbicara tentang "lokasi kasar pengunjung", jadi ini mungkin bukan yang Anda inginkan. Poin penting adalah bahwa geolokasi HTML5 akan memunculkan prompt konfirmasi yang tampak menakutkan. Ya lokasi biasanya akan jauh lebih tepat ... tetapi hanya setelah pengunjung menyetujui konfirmasi konfirmasi.
Harry Wood
3

Opsi yang berfokus pada dukungan seluler, meskipun juga berfungsi dengan baik pada sebagian besar browser desktop (kecuali untuk IE menurut pengalaman saya), adalah paket Geo-Location-Javascript yang membungkus API GeoLokasi HTML5 yang disebutkan Sean. Saya menemukan dukungan peramban seluler sangat buruk untuk API HTML5 (meskipun tidak mengejutkan, karena masih dalam konsep) jadi itulah mengapa saya memilih paket ini.

Hasil dari perangkat moblie cukup baik atas koneksi sel dan WiFi (dan GPS jika perangkat memilikinya). Browser desktop melaporkan posisi berbutir kasar yang sebanding dengan layanan lain.

James M
sumber
2

Quova http://www.quova.com/ juga memiliki layanan. Saya berbicara dengan mereka kemarin di GeoLoco. Menurut mereka (jadi bawa dengan sebutir garam) mereka mengatakan mereka jauh lebih baik secara internasional daripada MaxMind. Mereka hampir sama di Amerika Utara.

Ketahuilah bahwa untuk ponsel IP mungkin akan memetakan ke mana saja Operator memiliki gateway mereka ke internet. Anda juga dapat mencoba menggunakan - http://www.loc-aid.com/ jika Anda menargetkan ponsel.

TheSteve0
sumber
2

Google analytics menyediakan peta dasar dan statistik di lokasi pengunjung Anda. Tentu saja, Anda harus membagikan informasi ini dengan Google ...

Julien
sumber
4
yang akan memungkinkan saya melaporkan pengunjung tetapi tidak menyesuaikan konten saya dengan cepat berdasarkan lokasi
JamesRyan
0

ipinfodb.com baik tetapi mereka sedang offline :(

Saya menggunakan itu untuk api saya . Ini bagus untuk cuaca saya, tetapi saya tidak tahu sekarang sudah offline sejak kemarin.

API seluruh dunia
sumber
1
Terimakasih atas balasan anda. Apakah Anda memperhatikan bahwa @FMark telah menggambarkan layanan ini dalam balasan sebelumnya di utas ini?
whuber
itu bukan kritik tentang ipinfodb tetapi saya punya masalah sebelumnya dengan alat konverter mata uang dan api mata uang saya , mencoba menggunakannya untuk secara otomatis menentukan lokasi dan dapat memberi mereka lokasi langsung yang terkait dengan mata uang tetapi; S memiliki banyak situs masalah adalah 3 hari luring, atau beberapa kesalahan koneksi atau banyak cerita yang memuat waktu yang dapat memengaruhi Kinerja Situs Anda, dan Google tidak menginginkan itu ...
jarauzes
Infodb tampak hebat, mencobanya selama berbulan-bulan sekarang .. apakah mereka memiliki batasan? maksud saya pengunjung per hari?
0

Jika Anda ingin memberikan konten atau iklan berdasarkan lokasi geografisnya, Anda tidak dapat mengandalkan untuk mengambil data lokasi dari perangkat. Bahkan ketika mereka menggunakan ponsel, ada kemungkinan besar GPS dan wifi dimatikan, dan mereka harus memberikan izin untuk berbagi lokasi.

Itu seperti: "Hei, bisakah Anda membagikan lokasi Anda dengan saya sehingga saya dapat memberi Anda konten dan iklan yang menurut saya paling terkait dengan lokasi geografis Anda?" Tanggapan: "Tidak! Beri saya konten dan iklan terbaik yang Anda miliki di sana"

Satu-satunya cara untuk menemukan lokasi tanpa meminta izin kepada mereka adalah melalui Alamat IP mereka. Anda dapat menginstal database di server Anda sendiri dan menanyakannya untuk menemukan lokasi Alamat IP atau menggunakan API eksternal yang harus Anda query dan dapatkan hasilnya. Saya menggunakan api geolokasi ipgp dan bekerja dengan baik. ( http://www.ipgp.net/ip-address-geolocation-api/ )

Lucian
sumber