首页新闻找找看学习计划

关于获取本地IP地址

0
悬赏园豆:20 [已解决问题] 解决于 2013-01-20 20:51

我是打算写一个局域网的应用,我想问下,如何能获取到本地与外部网络的通信IP地址,通过Dns类获取到的ip地址有很多个,其中有ipv4和ipv6的,但是当ipv4地址有多个的时候,我们怎么知道那个是用于与外网通信的,有些人电脑上装了vm,vm好像有个虚拟的网卡,也会有一个ipv4地址,这些需要怎么过滤掉

IPAddress[] ips = Dns.GetHostEntry(Dns.GetHostName()).AddressList;

bomo的主页 bomo | 初学一级 | 园豆:19
提问于:2013-01-20 16:43
< >
分享
最佳答案
1

要过滤掉虚拟网卡,需要从先获取所有网卡信息,从网卡信息中判断是否是物理网卡,再从网卡信息中获取ip地址。可以参考这篇文章:http://blog.csdn.net/sabty/article/details/4404488 (我试了一下这个代码,其第32行fRegistryKey 的地址写法有误,改一下就可以用了

另外,从你的意思上来看貌似是要获取公网地址,如果用了路由器的话,这个一般就不是机器上配置的IP地址了。要获取公网地址,一个简单的做法是访问下类似http://www.ip138.com/ 之类的ip查询网站,从网页信息中截取你的ip地址。

收获园豆:20
天方 | 大侠五级 |园豆:5264 | 2013-01-20 18:23

谢谢

bomo | 园豆:19 (初学一级) | 2013-01-20 20:51
其他回答(1)
0

你可以看下应该是第一个是本机的地址

chenping2008 | 园豆:9836 (大侠五级) | 2013-01-20 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册