0

PHP サーバーに Net_Geo pear パッケージをインストールしました。

これは私が使用しているコードです、

getRecord($ip); // 出力 echo "Single IP results:
"; エコー "
";
    print_r($results);
    エコー "
"; // 複数の IP の配列の例 $arr_ips = array ( 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);
    エコー "
"; ?>

しかし、このコードは結果を表示していません。このコードはまったく機能していないと思います。

これは Net_Geo オブジェクトです

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 [service] => [cache_prefix] => netgeo [useragent] => PHP/NetGeo [useragent_version] => 1.0 [array_limit] => 100 [cache] => Cache_Function オブジェクト ( [ [期限切れ] => 2592000 [キャッシュ] => 1 [gc_time] => 1 [gc_probability] => 1 [gc_maxlifetime] => 86400 [コンテナ] => 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] => 

)

ありがとう

4

1 に答える 1

1

のドキュメントページには次のようにNet_Geo::Net_Geo()書かれています。

このメソッドは2つのパラメーターを受け入れます。

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

そして、それらのパラメータは次のとおりです。

これらのパラメータを渡していない-つまり、デフォルトのNetgeoサービスURLが使用されています...

...そしてそれを開こうとすると(http://netgeo.caida.org/perl/netgeo.cgi)、それが機能しないことがわかります; 私のFirefoxはサーバーに接続できないと言っています。

これはおそらく、コードが期待される出力を生成しない理由を説明しています:ジオローカリゼーションサーバーに依存していて、そのサーバーが機能しなくなった場合...


補足として:ネットワーキングセクションのpearパッケージ のインデックスによると、はNet_Geoもう維持されておらず、最後のバージョンは2006-03-29にリリースされました。これは良い兆候ではありません...

PECLパッケージをインストールできる場合(おそらくサーバーの管理者である必要があります)GeoIPパッケージに興味があるかもしれません。

于 2009-12-02T05:24:46.233 に答える