如何知道哪些已安装的设备在WINPCAP中有互联网连接?

时间:2010-02-07 21:52:35

标签: c++ network-programming winpcap

我知道winpcap库使一个人能够获得有关已安装设备的高级信息......

鉴于计算机中找到的所有网络设备,我怎么知道哪一个有互联网连接?!

感谢:)

2 个答案:

答案 0 :(得分:1)

您通常不关心这一点。通常,您只需要网络堆栈建立连接,而不必担心细节。

但是,每个“设备”都有自己的IP地址。您可以在建立连接时请求网络堆栈使用此IP地址。

现在,要确定哪些设备具有intenet连接,请迭代所有设备,获取其IP地址,并尝试创建从该原始IP到Internet上的目标IP的连接。通常,您已经知道这样的目的地IP,例如你公司的网络服务器。

答案 1 :(得分:1)

GetAdaptersInfo()将为您提供表单中安装的所有网络适配器的列表,然后您可以在GetIfEntry()中使用该表单。后一个功能将告诉您适配器的运行状态,因此您至少可以判断适配器是否已插入实时集线器/交换机/路由器。

如果您对IP连接特别感兴趣,可以查看是否为该接口配置了默认网关。不要忘记,如果您尝试这样做,可能必须支持IPv6和IP4。

将GetAdaptersInfo()找到的网络适配器与pcap_findalldevs()找到的网络适配器相关联,作为读者的练习。我不记得细节但是很明显。