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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top