如何获得公共IP

时间:2014-10-06 02:36:24

标签: php ip-address

我试图获取使用我所做页面形式的人的公共IP。

我不知道使用哪种编程语言。我正在网上阅读,我发现了一些:

// PHP Code
$_SERVER["REMOTE_ADDR"]

输出:127.0.0.1(本地IP)。

然后我也发现了这个:

// PHP Code
$externalContent = file_get_contents('http://checkip.dyndns.com/');
preg_match('/\b(?:\d{1,3}\.){3}\d{1,3}\b/', $externalContent, $m);
$externalIp = $m[0];

这会输出正确的IP(公共IP),但需要使用其他网页(http://checkip.dyndns.com/)。

我想知道这样的网页如何获得公共IP?我正在寻找一种方法来获得它而无需使用其他网页。感谢。

2 个答案:

答案 0 :(得分:1)

$_SERVER["REMOTE_ADDR"]应该可以正常运行。获得127.0.0.1的原因是因为您在本地环境中运行它。

如果您将此脚本放在实时网络服务器上并访问它,那么当我检查whatismyip

时,您将从$_SERVER["REMOTE_ADDR"]获得相同的IP

无论如何,请服务器调用:

$externalContent = file_get_contents('http://checkip.dyndns.com/');

只会让您成功返回服务器的IP地址,而不是访问者。

答案 1 :(得分:0)

这个问题困扰了我很久了。

如果您有权访问自己的远程服务器,我为解决这个问题所做的就是创建一个简单的服务器端脚本echo $_SERVER['REMOTE_ADDR'];,以便从我的localhost向我提供ISP分配给我的设备的公共IP。