|
1
4
幸运的是,对于99.9%的家庭用户来说,这就足够了。他们不可能有太多的路由表,GetBestInterface会自动地选择有线而不是无线——所以你应该是个好人。在你搞砸的0.1%的情况下,加入一个覆盖选项,然后结束。 但是,对于企业使用,您应该为特定目的地使用GetBestInterface,否则,如果某人与您的目的地位于同一LAN上(这意味着您应该使用“内部”接口,而不是“外部”)或具有到您的目的地的特定路由,您将遇到问题(例如,我的内部网络可以与目的地的网络进行对等)。
|
|
|
2
1
显然,在Vista中有一些新的接口,可以查询internet连接等。看一看 NLM Interfaces INetworkConnection Network Awareness on Windows Vista 不幸的是,这只在Vista上可用,所以对于XP,我必须保留我原来的启发式。 |
|
|
3
1
我会看看路由表。无论哪个NIC具有0.0.0.0路由且已启用且具有最低度量,都是当前正在向internet发送数据包的NIC。
另一种选择是ping或GetBestInterface 4.2.2.2-这是一个古老的DNS服务器,目前由GTEI持有;如果我没记错的话,以前是斯普林特。 |
|
|
4
0
|
|
|
5
0
启动>运行>cmd.exe(在XP和Vista中工作):
这将显示有关计算机中接口的所有信息。面向“公共”的接口应具有公共IP地址。首先, 为192.168.x.x或10.x.x.x:) |
|
6
0
|
|
|
7
0
看看路由表?一般来说,除非您在windows中的网络之间进行路由(这是可能的,但现在对于客户端计算机来说并不常见),否则保存默认路由的接口将具有Internet连接。 你的问题没有详细说明你为什么这么做,或者你用什么做,所以我不能提供任何细节。命令行工具“route”可能会有所帮助,但可能有一些库,用于查看路由表时使用的任何编程语言。 你不能依赖接口的IP地址(例如,假设RFC-1918地址[192.168.0.0/16,172.16.0.0/12,10.0.0.0/8]不是internet),因为大多数站点都有某种防火墙或代理设置,“internet”接口实际上是在“私有”lan上,可以让你上网。 更新:根据您的进一步信息,听起来您有一个不错的解决方案。我不太确定选择0.0.0.0,因为这是IP地址的一个边界情况——在您特定的平台/语言组合中可能是可以的。听起来(根据API描述)您可以只指定一个地址,那么为什么不指定一些已知的互联网地址,例如您网站的IP地址,或者更随机的地址,如65.66.67.68?只需确保不要选择rfc-1918地址,或本地主机范围(127.0.0.0/8),或多播,任何其他保留范围,以及任何解析为.mil或.gov的地址之一(虽然听起来getbestinterface不会发送任何流量,但如果让联邦调查局破门而入,就很难发现了……) |
|
|
8
0
|