2010-04-20 83 views
6

是否有Windows API检测Windows 7计算机的网络连接是互联网连接还是没有互联网连接的局域网连接? Windows 7和Vista在网络图标(Local only v。Local和Internet)中指出了这一点,是否有计划地获取该信息?检测互联网V.本地局域网连接

回答

0

不完美。

,如果你是一个从局域网IP地址,你可以检测到(假设你的本地DHCP递出192.168.xx.xx私有地址之一。)

你能Ping一个已知的外部站点检查该LAN具有互联网连接。

+0

只是因为计算机有一个私人e IP地址(也包括10.x.x.x和172.16-31.x.x)并不意味着它没有连接到Internet。任何从家庭路由器执行NAT后访问此站点的人都可以证明! – 2010-04-20 19:20:07

+0

目前还不清楚OP要求的是什么。直接互联网连接vs NAT – 2010-04-20 21:17:04

1

Pinging 4.2.2.2是确定是否存在互联网连接的常用手段。

背后的故事lies here

+0

有趣。什么是vnsc-bak.sys.gtei.net? – sbi 2010-04-20 18:48:46

+2

尽管现在8.8.8.8可能更好(看看google的威力) – 2010-04-20 18:55:06

+0

@Martin:是的,虽然4.2.2.2现在对我来说是肌肉记忆。我不知道我是否可以忍受学习8.8.8.8以及索引和中指之间的不舒服角度。 – 2010-04-20 18:56:30

0

Windows 7在链接建立5秒后为dns.msftncsi.com执行DNS查询。除了检查互联网连接外,没有任何理由这样做。

0

在Windows API代码包会为做到这一点,你 http://archive.msdn.microsoft.com/WindowsAPICodePack

其NetworkListManager类有一个IsConnected属性,指示,如果您有LAN连接

,并表示如果有互联网连接

的IsConnectedToInternet财产

包下载包含一个网络演示应用程序,演示此

+0

这个问题被标记为C++,表示本机代码。代码包(我爱和部分负责)是托管代码,例如C# – 2013-02-20 12:47:32