首页 新闻 会员 周边

关于c#取外网IP的问题。。

0
[已关闭问题] 关闭于 2013-12-05 13:30

我是adsl拔号上用,用以下方法取本外网IP

//获取本机的IP列表,IP列表中的第一项是局域网IP,第二项是广域网IP
                IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;

                //如果本机IP列表小于2,则返回空字符串
                if (addressList.Length < 2)
                {
                    return "";
                }

                //返回本机的广域网IP
                return addressList[1].ToString();

正常情况下是正确的,不这如果我开了个360随身wifi就不行了。每次提出来的外网IP都一样,重拔多少次都一样。

我觉得有可能是开了360随身wffi之后取出的IP列表有多个,也以每次都取索引[1]就取不到外网IP了。请问有什么解决办法吗?

yeopp的主页 yeopp | 菜鸟二级 | 园豆:319
提问于:2013-12-03 19:55
< >
分享
所有回答(3)
0

好像在贴吧里看到了这个问题。

JackerKun | 园豆:202 (菜鸟二级) | 2013-12-03 22:03
1

其实获取外网Ip最直接的方式是 请求公网的一个web服务或是页面(提供ip解析),然后从返回的结果得到公网IP。因为你的公网Ip只在和公网上的其它主机交互的时候才有意义。

例如 http://www.ip138.com 就提供这种服务。

好处是结果不依赖你上网的方式。

sylvester.lee | 园豆:238 (菜鸟二级) | 2013-12-03 23:03
0

楼上正解

幕三少 | 园豆:1384 (小虾三级) | 2013-12-04 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册