0

このコードを使用しました

$ip =  change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);
$giasn = geoip_open("GeoIPASNumv6.dat", GEOIP_STANDARD);
$asn = geoip_name_by_addr_v6($giasn, $ip);
geoip_close($giasn);

このコードの後、このようにレコードをエコーし​​ます

echo 'Shell';

このような結果が得られます

1111111111111111111シェル

geopip コードを削除すると、以下のような結果が表示されます

シェル

私はこれらのものに乗りたいです。何かアドバイス

ありがとう

4

5 に答える 5

1

これらの関数のどこかで 1 が出力されている可能性があります。

geoip関数でprint/echoを検索してください。これは暗闇の中での刺し傷ですが、ブール値をエコーし​​ていると推測したいと思います。

あなたが言ったとき"When i remove geopip code then it shows result like belo"w

これにより、エコーがgeoip コードから来ているという手がかりが得られます。関数を 1 つずつコメントアウトして、原因となっている関数を特定してください。

于 2014-01-12T13:46:31.630 に答える
0

これらは確かにコードの別の場所でエコーされます。geoip ライブラリの変更されていないコピーを含めるか、コード内でエコーが発生する正確な場所を見つけてください。

于 2014-01-12T13:44:09.137 に答える
0

問題が発生しました。ここに置くと、他の人がこの投稿に来るのに役立つかもしれません

IP クラスを変換するためにコードで呼び出される関数があります。ここにあった

change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);

この関数では、答えをエコーし​​ていました。すべてのエコーをリターンに置き換えます。1111111 が消えます。有益な回答をありがとう

于 2014-01-13T08:10:36.200 に答える
0

ob_start()およびを使用して、geoip 関数からの出力を抑制することができますob_end_clean()

ob_start();
$ip =  change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);
$giasn = geoip_open("GeoIPASNumv6.dat", GEOIP_STANDARD);
$asn = geoip_name_by_addr_v6($giasn, $ip);
geoip_close($giasn);
ob_end_clean();

echo 'Shell';
于 2014-01-12T13:48:45.730 に答える