Comment puis-je déterminer l'emplacement d'un visiteur sur mon site Web?

19

Si je souhaite fournir à un site Web un contenu adapté à l'emplacement, comment puis-je utiliser pour trouver l'emplacement approximatif du visiteur en utilisant son adresse IP ou ses informations d'en-tête?

JamesRyan
la source
maxmind.com/app/ip-location
Christopher Schmidt
4
Vous devriez plutôt poser cette question sur StackOverflow.com .
Jonas
7
Je pense qu'il y aura toujours des questions croisées qui conviendront aux deux. Mais les réponses ici avec une perspective SIG peuvent être différentes des réponses là-bas avec une perspective de programmation.
JamesRyan

Réponses:

12

Tout d'abord, vous devez savoir que la précision de ces services est, et sera toujours, faible.

MaxMind Geolite city est gratuit . Si ce n'est pas assez bon, vous pouvez apparemment passer à une version payante plus précise. Je ne peux pas parler de la qualité de la version payante, car je ne l'ai jamais utilisée.

Si vous aimez votre SQL, téléchargez la version CSV . Chargez-le dans la base de données de votre choix et interrogez-le.

L'option plus rapide et peu encombrante consiste à télécharger la version de fichier blob binaire de la même base de données, puis à utiliser une API spécifique à la langue à partir du même site Web pour l'interroger.

Alternativement, j'ai trouvé ipinfodb.com utile. La requête se fait par simple HTTP GET. Par exemple, pour géolocaliser stackoverflow.com, essayez:

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

Cela renverra un fichier XML contenant la latitude et la longitude, qui ressemble à:

<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
la source
5 ans après ... Quelqu'un peut-il mettre à jour cette réponse? Poster une nouvelle réponse?
Dror Atariah
5 ans plus tard, la plupart des systèmes de géoïdes sont inutiles car ils ne parviennent pas à localiser correctement les utilisateurs mobiles ...
Mike Szyndel
9

L'emplacement que vous pouvez déduire de l'IP n'est pas très fiable (c'est-à-dire qu'il fonctionne un peu parfois).

Si vous voulez un emplacement fiable, pensez à l' API de géolocalisation qui fait partie de HTML5 . Notez cependant que tous les navigateurs Web ne le prennent pas (encore) en charge.

Sean
la source
1
+1 pour HTML5. Vous pouvez toujours utiliser les deux - si l'API de géolocalisation échoue, retombez sur IP. Une meilleure prise en charge du site Web signifie une pression accrue sur les fournisseurs de navigateurs pour qu'ils prennent en charge de meilleures technologies.
naught101
Mais nous parlons de «l'emplacement approximatif du visiteur», donc ce n'est peut-être pas ce que vous voulez. Un point important est que la géolocalisation HTML5 fera apparaître une invite de confirmation d'apparence effrayante. Oui, l'emplacement sera généralement beaucoup plus exact ... mais seulement après que le visiteur ait accepté l'invite de confirmation.
Harry Wood
3

Une option qui se concentre sur la prise en charge mobile, bien que fonctionne également bien sur la plupart des navigateurs de bureau (sauf pour IE dans mon expérience), est le package Geo-Location-Javascript qui encapsule l'API HTML5 GeoLocation Sean mentionné. J'ai trouvé le support du navigateur mobile assez médiocre pour l'API HTML5 (pas surprenant, cependant, car il est toujours en version préliminaire), c'est pourquoi j'ai opté pour ce package.

Les résultats des appareils moblie sont assez bons sur les connexions cellulaires et WiFi (et GPS si l'appareil en est équipé). Les navigateurs de bureau signalent une position assez grossière comparable à d'autres services.

James M
la source
2

Quova http://www.quova.com/ dispose également d'un service. Je leur ai parlé hier à GeoLoco. Selon eux (alors prenez-le avec un grain de sel), ils disent qu'ils sont bien meilleurs au niveau international que MaxMind. Ils sont à peu près égaux en Amérique du Nord.

Sachez que pour les téléphones mobiles, l'IP correspondra probablement à l'endroit où l'opérateur a sa passerelle vers Internet. Vous pouvez également essayer d'utiliser - http://www.loc-aid.com/ si vous ciblez les téléphones mobiles.

TheSteve0
la source
2

Google Analytics fournit des cartes et des statistiques de base sur l'emplacement de votre visiteur. Bien sûr, vous devez partager ces informations avec Google ...

julien
la source
4
cela me permettrait de faire un rapport sur les visiteurs mais de ne pas adapter mon contenu à la volée par emplacement
JamesRyan
0

ipinfodb.com est bon mais ils sont actuellement hors ligne :(

J'utilise cela pour mon api . C'est génial pour ma météo, mais je ne sais pas maintenant, il est hors ligne depuis hier.

API mondiale
la source
1
Merci pour votre réponse. Avez-vous remarqué que @FMark a déjà décrit ce service dans une réponse précédente dans ce fil?
whuber
ce n'est pas une critique à propos d'ipinfodb mais j'ai déjà eu des problèmes avec mon convertisseur de devises et mon outil d'api de devises, j'ai essayé de l'utiliser pour déterminer automatiquement l'emplacement et je pouvais leur donner un emplacement direct associé à la monnaie mais; S avait beaucoup de problèmes sur le site était 3 jours hors ligne, ou une erreur de connexion ou des contes beaucoup de temps de chargement qui pourraient affecter les performances de votre site, et Google n'en veut pas ...
jarauzes
Infodb semble génial, a essayé pendant des mois maintenant .. ont-ils une limite? je veux dire des visiteurs par jour?
0

Si vous souhaitez leur fournir du contenu ou des annonces en fonction de leur emplacement géographique, vous ne pouvez pas vous fier à prendre les données de localisation de l'appareil. Même s'ils sont sur des téléphones mobiles, il y a de fortes chances qu'ils aient le GPS et le wifi désactivés, et ils doivent donner leur consentement pour partager l'emplacement.

C'est comme: "Hé, pouvez-vous partager votre position avec moi afin que je puisse vous donner du contenu et des annonces qui, selon moi, sont les plus liés à votre position géographique?" Réponse: "Non! Donnez-moi le meilleur contenu et les meilleures annonces que vous ayez"

La seule façon de trouver l'emplacement sans leur demander la permission est via leur adresse IP. Vous pouvez installer une base de données sur votre propre serveur et l'interroger pour trouver l'emplacement d'une adresse IP ou utiliser une API externe que vous devez interroger et obtenir les résultats. J'utilise api de géolocalisation ipgp et fonctionne très bien. ( http://www.ipgp.net/ip-address-geolocation-api/ )

Lucian
la source