我试图获取使用我所做页面形式的人的公共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?我正在寻找一种方法来获得它而无需使用其他网页。感谢。
答案 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。