热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用PHP获取服务器的外部IP?

我经常听到人们说使用“$_SERVER[‘SERVER_ADDR’]”,但这会返回我服务器的LANIP(例如192.168.1.100).我想要外部IP.解决方法:只需查询返回您的

我经常听到人们说使用“$_SERVER [‘SERVER_ADDR’]”,但这会返回我服务器的LAN IP(例如192.168.1.100).我想要外部IP.

解决方法:

只需查询返回您的IP地址的主机:

$externalCOntent= file_get_contents('http://checkip.dyndns.com/');
preg_match('/Current IP Address: \[?([:.0-9a-fA-F]+)\]?/', $externalContent, $m);
$externalIp = $m[1];

或者,设置一个只响应IP的服务,并像这样使用它:

$externalIp = file_get_contents('http://yourdomain.example/ip/');

只需回显远程IP地址,或者付某人托管,即可自行设置服务.未经许可,请勿使用其他人的服务器.以前,这个答案与我的服务有关,现在每秒都会被多次击中.

请注意,在具有一个或多个NATs的IP网络中,您可能有多个外部IP地址.这只会给你一个.

此外,此解决方案当然取决于可用的远程主机.但是,由于没有广泛实施的标准(没有ISP,只有一些家用路由器实现UPnP),没有其他方法可以获得外部IP地址.即使您可以与本地NAT通信,也无法确定其背后是否存在其他NAT.


推荐阅读
author-avatar
喵屎柔_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有