Pregunta
He instalado el paquete de pera Net_Geo PHP en mi servidor.
Este es el código que estoy utilizando,
getRecord ($ ip); // salida echo "resultados IP individuales:"; echo "
"; print_r($results); echo ""; // ejemplo matriz de múltiples IPs $ Arr_ips = array ( gethostbyname ( "www.google.com"), gethostbyname ( "www.heise.de"), gethostbyname ( "www.college.ch") ); // podido recuperar la matriz de información de net_geo $ resultados = $ net_geo-> GetRecord ($ arr_ips); // salida echo "resultados IP múltiples:
"; echo "
"; print_r($results); echo ""; ?>
Sin embargo, esta pieza de código no muestra ningún resultado. Creo que este código no funciona en absoluto.
Este es el objeto Net_Geo
Objeto Net_Geo ( [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 [Servicio] => [Cache_prefix] => netgeo [Useragent] => PHP / NetGeo [Useragent_version] => 1,0 [Array_limit] => 100 [Caché] => Objeto Cache_Function ( [Caducidad] => 2592000 [Caching] => 1 [Gc_time] => 1 [Gc_probability] => 1 [Gc_maxlifetime] => 86400 [Recipiente] => Objeto Cache_Container_file ( [FileLocking] => [Cache_dir] => / tmp / [Filename_prefix] => netgeo [entradas] => 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] =>
)
Gracias
Solución
La página de documentación de Net_Geo::Net_Geo()
dice que:
El método acepta dos parámetros:
bool Net_Geo() ( string $applicationName = '' , string $alternateServerUrl = '' )
Y esos parámetros son:
-
string $applicationName
- opcional nombre de la aplicación a utilizar en el agente de usuario cuando el sondeo Netgeo -
string $alternateServerUrl
- URL para guión de servicio Netgeo, se establecerán en " http: // netgeo. caida.org/perl/netgeo.cgi " a no ser cambiado
No está de paso en estos patrones - lo que significa el valor por defecto se utiliza la URL del servicio Netgeo ...
... Y si intenta abrirlo ( http: //netgeo.caida. org / perl / netgeo.cgi ), verá que no funciona; mi Firefox dice que no puede conectar con el servidor.
Esto probablemente explica por qué su código no produce ninguna salida esperada: si se basa en un servidor geolocalition, y ese servidor ya no funciona ...
Como comentario: según el índice de href="http://pear.php.net/packages.php?catpid=16&catname=Networking" en la sección Networking , Net_Geo
no se mantiene más, y la última versión fue lanzada en 2006-03-29; el cual no es del todo una buena señal ...
Si puede instalar paquetes PECL (que probablemente tendrá que ser administrador de su servidor) , tal vez el paquete GeoIP le interesaría.