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?
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?
Réponses:
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>
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.
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.
Vous pouvez utiliser cette URL et lui transmettre une adresse IP. http://api.hostip.info/get_html.php?ip=84.32.32.44
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.
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 ...
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.
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/ )