Pergunta
Eu instalei o pacote de pêra Net_Geo no meu PHP Server.
Este é o código que estou usando,
getRecord ($ ip); // resultado "Os resultados do IP Único:" eco; echo "
"; print_r($results); echo ""; // exemplo matriz de vários IPs $ Arr_ips = matriz ( gethostbyname ( "www.google.com"), gethostbyname ( "www.heise.de"), gethostbyname ( "www.college.ch") ); // buscar variedade informações de net_geo $ resultados = $ net_geo-> GetRecord ($ arr_ips); // resultado echo "vários resultados IP:
"; echo "
"; print_r($results); echo ""; ?>
Mas este pedaço de código é não exibir quaisquer resultados. Acho que este código não está funcionando em todos.
Este é o objeto Net_Geo
Net_Geo Objeto ( [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 [Serviço] => [Cache_prefix] => netgeo [Useragent] => PHP / NetGeo [Useragent_version] => 1,0 [Array_limit] => 100 [Esconderijo] => Objeto Cache_Function ( [Expira] => 2592000 [Cache] => 1 [Gc_time] => 1 [Gc_probability] => 1 [Gc_maxlifetime] => 86400 [Recipiente] => Cache_Container_file objecto ( [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] =>
)
Graças
Solução
A página de documentação do Net_Geo::Net_Geo()
diz que:
O método aceita dois parâmetros:
bool Net_Geo() ( string $applicationName = '' , string $alternateServerUrl = '' )
E esses parâmetros são:
-
string $applicationName
- Opcional nome do aplicativo para uso em UserAgent quando as perguntas Netgeo -
string $alternateServerUrl
- URL para o script de serviço Netgeo, será definido como " http: // netgeo. caida.org/perl/netgeo.cgi " a menos que mudou
Você não está passando nenhum desses parâmetros - o que significa o padrão Netgeo URL serviço é usado ...
... E se você tentar abri-lo ( http: //netgeo.caida. org / perl / netgeo.cgi ), você verá que não funciona; meu Firefox diz que não pode se conectar ao servidor.
Isso provavelmente explica por que seu código não produz qualquer saída esperada: se ele depende de um servidor geolocalition, e esse servidor não funciona mais ...
Como nota: de acordo com o índice de pêra pacotes na seção Networking , Net_Geo
não é mais mantido, ea última versão foi lançada em 2006-03-29; que é bastante não um bom sinal ...
Se você pode instalar pacotes PECL (você provavelmente precisa ser administrador do seu servidor) , talvez o GeoIP empacotar iria lhe interessar.