Пакет Net_Geo Pear в PHP - PullRequest
       18

Пакет Net_Geo Pear в PHP

0 голосов
/ 02 декабря 2009

Я установил пакет Net_Geo pear на моем PHP-сервере.

Это код, который я использую,

getRecord ($ ф); // выход echo "Результаты одного IP:
"; echo "
";
    print_r($results);
    echo "
"; // пример массива нескольких IP-адресов $ arr_ips = массив ( gethostbyname ( "www.google.com"), gethostbyname ( "www.heise.de"), gethostbyname ( "www.college.ch") ); // получить массив информации из net_geo $ results = $ net_geo-> getRecord ($ arr_ips); // выход echo "Результаты по нескольким IP:
"; echo "
";
    print_r($results);
    echo "
"; ?>

Но этот фрагмент кода не отображает никаких результатов. Я думаю, что этот код не работает вообще.

Это объект Net_Geo

Net_Geo Object ( [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 ( [expires] => 2592000 [caching] => 1 [gc_time] => 1 [gc_probability] => 1 [gc_maxlifetime] => 86400 [container] => Объект Cache_Container_file ( [fileLocking] => [cache_dir] => / tmp / [filename_prefix] => netgeo [записи] => массив ( )

                [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] => 

)

Спасибо

1 Ответ

1 голос
/ 02 декабря 2009

Страница документации Net_Geo::Net_Geo() гласит:

Метод принимает два параметра:

bool Net_Geo() ( string $applicationName = '' , string $alternateServerUrl = '' )

И эти параметры:

  • string $applicationName - Необязательное имя приложения для использования в UserAgent при опросе Netgeo
  • string $alternateServerUrl - URL-адрес сценария службы Netgeo, будет установлен на "http://netgeo.caida.org/perl/netgeo.cgi", если не изменено

Вы не передаете ни один из этих параметров - это означает, что используется URL-адрес службы Netgeo по умолчанию ...

... И если вы попытаетесь открыть его (http://netgeo.caida.org/perl/netgeo.cgi), вы увидите, что он не работает; мой Firefox говорит, что не может подключиться к серверу.

Это, вероятно, объясняет, почему ваш код не дает ожидаемого результата: если он опирается на сервер геолокации, и этот сервер больше не работает ...


В качестве sidenote: согласно индексу pear пакетов в разделе Networking , Net_Geo больше не поддерживается, а последняя версия была выпущена в 2006-03-29; что не очень хороший знак ...

Если вы можете установить пакеты PECL (вам, вероятно, понадобится быть администратором вашего сервера) , возможно, пакет GeoIP вас заинтересует.

...