Obtener información de IP geográfica | Programar Plus

Solicita un servidor de geo-IP para verificar, devuelve dónde se encuentra una IP (host, estado, país, ciudad).

       //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
               [email protected]_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["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

               //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;

(Visited 6 times, 1 visits today)