有什么方法可以在不建立网络外部连接的情况下检索外部 IP 地址?
也许通过以某种方式询问路由器?
如果我在路由器后面,操作系统是否知道我拥有的 IP?
StackOverflow 上的所有方法都推荐某种第三方提供商,但我希望我的应用程序独立于其他服务器。
编辑:我发现的最佳解决方案是:http ://code.google.com/p/csharp-upnp-portmapper/
其中依赖于UPnP。
有什么方法可以在不建立网络外部连接的情况下检索外部 IP 地址?
也许通过以某种方式询问路由器?
如果我在路由器后面,操作系统是否知道我拥有的 IP?
StackOverflow 上的所有方法都推荐某种第三方提供商,但我希望我的应用程序独立于其他服务器。
编辑:我发现的最佳解决方案是:http ://code.google.com/p/csharp-upnp-portmapper/
其中依赖于UPnP。
如果路由器有webinterface,你可以在路由器的webinterface中获取状态页面,并从html中解析出ip-address。
Telenor 4G路由器的php示例
<?php
$url = "http://192.168.0.1/platform.cgi?page=home.htm";
$page = file_get_contents($url);
preg_match("/IP Address: [^0-9]+(?<ip>[0-9]+(\.[0-9]+){3})</", $page, $matches);
$ip = $matches['ip'];
echo $ip
?>
由于大多数路由器都需要用户名和密码,因此您可能希望使用 curl 发布 thouse,然后在登录后获取页面。