我知道winpcap库使一个人能够获得有关已安装设备的高级信息......
鉴于计算机中找到的所有网络设备,我怎么知道哪一个有互联网连接?!
感谢:)
答案 0 :(得分:1)
您通常不关心这一点。通常,您只需要网络堆栈建立连接,而不必担心细节。
但是,每个“设备”都有自己的IP地址。您可以在建立连接时请求网络堆栈使用此IP地址。
现在,要确定哪些设备具有intenet连接,请迭代所有设备,获取其IP地址,并尝试创建从该原始IP到Internet上的目标IP的连接。通常,您已经知道这样的目的地IP,例如你公司的网络服务器。
答案 1 :(得分:1)
GetAdaptersInfo()将为您提供表单中安装的所有网络适配器的列表,然后您可以在GetIfEntry()中使用该表单。后一个功能将告诉您适配器的运行状态,因此您至少可以判断适配器是否已插入实时集线器/交换机/路由器。
如果您对IP连接特别感兴趣,可以查看是否为该接口配置了默认网关。不要忘记,如果您尝试这样做,可能必须支持IPv6和IP4。
将GetAdaptersInfo()找到的网络适配器与pcap_findalldevs()找到的网络适配器相关联,作为读者的练习。我不记得细节但是很明显。