找回密码
 加入
搜索
查看: 3424|回复: 2

[网络通信] [已解决]如何准确获得本机活动网络连接的IP

[复制链接]
发表于 2014-5-28 23:25:02 | 显示全部楼层 |阅读模式
本帖最后由 sunless 于 2014-5-29 22:00 编辑

UDP通讯中需要绑定IP 而且 还不能绑定 0.0.0.0  需要绑定活动网络连接的IP。 如果 只有一个网卡,且不宽带连接 一般 @IPAddress1就可以得到正确的IP地址。
但是实际应用中,会有几种情况。  
1 同时存在多个网卡。 且都是连接的。 比如你电脑上装了虚拟机。
2 连接宽带猫 拔上号网的。

目前知道 用WMI方式可以得到活动连接。 但是有的电脑系统优化过, WMI 是禁用的。  
对于拔号宽带,曾经试过取外网IP地址,然后和 @IPAddress 一一比对,如果相同,就返回这个IP 。但是 拔号宽带还有一种情况,是宽带的IP 和外网的IP是不同的。  
各位高人们有没有什么好的办法?  API不知道有没有?
实在不行就 tracert 了 。 得到第一跳,然后 分别取各个IP的网关。 但是 tracert 执行起来时间比较长。。 影响程序效率。。
 楼主| 发表于 2014-5-29 21:59:34 | 显示全部楼层
好吧 貌似搞定了.  通过  iphlpapi.dll 的  GetBestInterface 可以取得 到目标网络 最快的本地网络索引. 然后 在 GetAdaptersInfo 取得的网络信息查找 索引号对应的IP 即可得到 连接外网的IP地址.
发表于 2014-8-11 19:53:47 | 显示全部楼层
我是检测 有网关IP 的 网卡 为首选,一般2个网吧设置 2个网关情况少的很
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 15:48 , Processed in 0.100740 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表