2010-02-07 78 views
3

我知道winpcap库让一个人获得有关已安装设备的高级信息...如何知道哪些已安装的设备在WINPCAP中具有Internet连接?

给出了计算机中找到的所有网络设备,我将如何知道哪一个网络连接?

谢谢:)

+1

为什么它只能是一个? – Joe 2010-02-07 21:55:05

+0

您可以尝试通过设备ping一个已知的URL。如果它已启动,您可以访问互联网。 – 2010-02-07 21:55:22

回答

1

你通常不关心这个。通常你只需要网络堆栈建立连接,而不用担心细节。

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

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

1

GetAdaptersInfo()将为您提供一个表单,该表单中安装的所有网络适配器都可以在GetIfEntry()中使用。后一种功能会告诉您适配器的运行状态,所以您至少可以知道适配器是否插入了现场集线器/交换机/路由器。

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

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

相关问题