web-dev-qa-db-fra.com

Emplacement géographique basé sur l'adresse IP - PHP

Nous recherchons un moyen rapide et précis d'obtenir l'emplacement des visiteurs en fonction de leur adresse IP.

Nous avons essayé ipinfodb.com mais leur API a gravement retardé notre site Web lors de l'appel de l'API.

Quels autres services proposez-vous?

21
Latox

Obtenez des informations Geo-IP

Demande à un serveur géo-IP (netip.de) de vérifier, retourne où se trouve une adresse IP (hôte, état, pays, ville).

<?php
       $ip='94.219.40.96';
       print_r(geoCheckIP($ip));
       //Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )

       //Get an array with geoip-infodata
       function geoCheckIP($ip)
       {
               //check, if the provided ip is valid
               if(!filter_var($ip, FILTER_VALIDATE_IP))
               {
                       throw new InvalidArgumentException("IP is not valid");
               }

               //contact ip-server
               $response=@file_get_contents('http://www.netip.de/search?query='.$ip);
               if (empty($response))
               {
                       throw new InvalidArgumentException("Error contacting Geo-IP-Server");
               }

               //Array containing all regex-patterns necessary to extract ip-geoinfo from page
               $patterns=array();
               $patterns["domain"] = '#Domain: (.*?)&nbsp;#i';
               $patterns["country"] = '#Country: (.*?)&nbsp;#i';
               $patterns["state"] = '#State/Region: (.*?)<br#i';
               $patterns["town"] = '#City: (.*?)<br#i';

               //Array where results will be stored
               $ipInfo=array();

               //check response from ipserver for above patterns
               foreach ($patterns as $key => $pattern)
               {
                       //store the result in array
                       $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
               }

               return $ipInfo;
       }

?>
38
David Croft

Le meilleur et le plus récent est GeoplugginAPI son gratuit et aucune limitation je suis utilisé pour ce mon site Web http://spidersoft.in pour le téléchargement basé sur l'emplacement en savoir plus à partir de ce lien

http://geoplugin.com

4
jacob justin

Essayez celui-ci http://ip.codehelper.io/

Voici PHP code. Le code mettra automatiquement en cache votre demande, donc votre serveur n'enverra pas plusieurs demandes. Renvoyez l'adresse IP, le pays, la ville et plus d'informations.

<?php
// Required Libraries
require_once("ip.codehelper.io.php");
require_once("php_fast_cache.php");

// New Class
$_ip = new ip_codehelper();

// Detect Real IP Address & Location
$real_client_ip_address = $_ip->getRealIP();
$visitor_location       = $_ip->getLocation($real_client_ip_address);

// Output result
echo $visitor_location['Country']."";
echo "<pre>";
print_r($visitor_location);
3
Ken Le

Le leader du marché dans cet espace et celui qui fournit une solution d'entreprise est Digital Element . Ils offrent un large éventail d'API, y compris PHP, pour accéder à leur serveur que vous pouvez installer localement ou accéder via un service Web. Leurs données sont de haute qualité et les performances de leur solution sont plutôt bonnes. MaxMind est également une autre option qui reçoit de bonnes critiques.

Pour la meilleure précision, vous voudrez opter pour un service ou une solution où vous obtenez des mises à jour hebdomadaires car ces choses peuvent changer beaucoup au sein d'un réseau donné. Le coût dépendra de la fréquence des mises à jour, de la granularité des données géographiques et du nombre de champs ou de bases de données supplémentaires que vous souhaitez. Certains fournisseurs proposent une langue, des données démographiques, une entreprise et un domaine pour n'en nommer que quelques-uns.

2
RC.