Question
Je l'ai installé le paquet PEAR Net_Geo sur mon serveur PHP.
est le code que je utilise,
getRecord (IP de $); // sortie echo "Résultats IP simples:"; echo "
"; print_r($results); echo ""; // tableau exemple de plusieurs adresses IP $ Arr_ips = array ( gethostbyname ( "www.google.com"), gethostbyname ( "www.heise.de"), gethostbyname ( "www.college.ch") ); // chercher tableau d'informations à partir Net_Geo $ résultats = $ net_geo-> getRecord (arr_ips $); // sortie echo "Plusieurs résultats IP:
"; echo "
"; print_r($results); echo ""; ?>
Mais ce morceau de code n'affiche aucun résultat. Je pense que ce code ne fonctionne pas du tout.
Ceci est l'objet Net_Geo
Net_Geo objet ( [Cache_path] => / tmp / [Cache_ttl] => 30 [Default_timeout] => 60 [Default_caida_server] => http://netgeo.caida.org/perl/netgeo.cgi [Default_hostip_server] => http://api.hostip.info/ [Localizer_data] => ./demo.csv [Service] => [Cache_prefix] => NetGeo [Useragent] => PHP / NetGeo [Useragent_version] => 1,0 [Array_limit] => 100 [Cache] => Cache_Function objet ( [Expire] => 2592000 [Cache] => 1 [Gc_time] => 1 [Gc_probability] => 1 [Gc_maxlifetime] => 86400 [Récipient] => Cache_Container_file objet ( [FileLocking] => [Cache_dir] => / tmp / [Filename_prefix] => NetGeo [entrées] => array ( )
[total_size] => 0
[max_userdata_linelength] => 257
[preload] => 1
[id] =>
[group] =>
[expires] => 0
[cachedata] =>
[userdata] =>
[unknown] => 1
[encoding_mode] => base64
[highwater] => 2048000
[lowwater] => 1536000
[allowed_options] => Array
(
[0] => encoding_mode
[1] => highwater
[2] => lowwater
)
[group_dirs] => Array
(
)
)
[_debug] =>
[_default_error_mode] =>
[_default_error_options] =>
[_default_error_handler] =>
[_error_class] => PEAR_Error
[_expected_errors] => Array
(
)
)
[netgeo_global] => netgeo_global
[useragent_string] =>
[default_server] =>
[last_target] =>
[applicationName] =>
[alternateServerUrl] =>
)
Merci
La solution
La page de documentation de Net_Geo::Net_Geo()
dit que:
La méthode accepte deux paramètres:
bool Net_Geo() ( string $applicationName = '' , string $alternateServerUrl = '' )
Et ces paramètres sont:
-
string $applicationName
- option nom de l'application à utiliser dans UserAgent lorsque l'interrogation Netgeo -
string $alternateServerUrl
- URL script de service Netgeo, seront mis à « http: // NetGeo. caida.org/perl/netgeo.cgi » sauf modification
Vous ne passe pas l'un de ces paramètres - ce qui signifie que la valeur par défaut Netgeo URL du service est ...
... Et si vous essayez de l'ouvrir ( http: //netgeo.caida. org / perl / netgeo.cgi ), vous verrez cela ne fonctionne pas; mon Firefox dit qu'il ne peut pas se connecter au serveur.
Ceci explique probablement pourquoi votre code ne produit pas de résultat attendu: si elle repose sur un serveur geolocalition, et que le serveur ne fonctionne plus ...
En sidenote: selon l'indice de href="http://pear.php.net/packages.php?catpid=16&catname=Networking" dans la section réseau , Net_Geo
est plus maintenu, et la dernière version a été publiée en 2006-03-29; ce qui est tout à fait pas un bon signe ...
Si vous pouvez installer des paquets PECL (vous aurez probablement besoin d'être administrateur de votre serveur) , peut-être le paquet GeoIP pourrait vous intéresser.