sunless 发表于 2014-5-28 23:25:02

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

本帖最后由 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 执行起来时间比较长。。 影响程序效率。。

sunless 发表于 2014-5-29 21:59:34

好吧 貌似搞定了.通过iphlpapi.dll 的GetBestInterface 可以取得 到目标网络 最快的本地网络索引. 然后 在 GetAdaptersInfo 取得的网络信息查找 索引号对应的IP 即可得到 连接外网的IP地址.

tvzml 发表于 2014-8-11 19:53:47

我是检测 有网关IP 的 网卡 为首选,一般2个网吧设置 2个网关情况少的很
页: [1]
查看完整版本: [已解决]如何准确获得本机活动网络连接的IP