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 代码,尝试逐个注释掉函数以找出导致它的函数。

于 2014-01-12T13:46:31.630 回答
1

我使用来自 GitHub 的最新版本的GeoIP对此进行了测试,但我无法重现它。我建议升级您的库版本。

于 2014-01-12T19:30:21.227 回答
0

您可以使用ob_start()and来抑制 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 回答
0

我有问题。放在这里可能会帮助其他人发表这篇文章

我在代码中调用了一个函数来转换 ip 类。那是

change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);

在这个函数中,我正在回应答案。我用返回替换所有回声。现在 1111111 消失了。感谢您的有用答案

于 2014-01-13T08:10:36.200 回答
0

这些肯定会在代码的其他地方得到回应。尝试包含 geoip 库的未修改副本,或尝试在代码中找到它们得到回显的确切位置。

于 2014-01-12T13:44:09.137 回答