C++ 使用Windows API检测网卡和以太网设备的IP地址
我在这里使用Microsoft代码学习如何检测卡和设备的IP地址: 我注意到一些奇怪的行为C++ 使用Windows API检测网卡和以太网设备的IP地址,c++,windows,network-programming,C++,Windows,Network Programming,我在这里使用Microsoft代码学习如何检测卡和设备的IP地址: 我注意到一些奇怪的行为 我有一个带有两个以太网卡的系统;一个连接到互联网,另一个连接到以太网设备。当我运行示例代码时,它将始终为具有internet连接的卡提供IP地址,但另一张卡将显示为127.0.0.1,子网掩码为255.0.0.0,除非我已插入以太网设备并通电。但是无论它是否连接到任何东西,卡都应该有一个默认的IP地址,对吗?我如何修改此代码以检测它 检测到第三个IP地址,似乎只是空数据。我在另一台只有一个网络连接的计算
R127.0.0.1的地址不是另一张卡的地址。它是环回适配器的地址—一个只能通过自身发送和接收数据的虚拟IP地址。另一个NIC(未插入网络)根本不在地址表中 您可能只想调用并过滤掉IFType为IF_TYPE_SOFTWARE_LOOPBACK的所有适配器 如果要查看是否使用提供相同功能的现有工具,请在命令提示符下键入以下任一项:
route print
(This will dump the routing table)
ipconfig /all
(this will show you the state of ALL adapters including the loopback)
arping
命令用于此操作1.静态IP和DHCP。最好是静态IP,但用户可以通过任何一种方式设置所有内容。2.谢谢3.谢谢@抱歉,我指的是第二个断开连接的接口的配置。据说是通过DHCP或其他方式获取其地址。事实上,我倾向于同意selbie的观点,你可能又把它误认为是环回,因为看起来有些真正的NIC不太可能有这个IP。+1,使用
路由
和ipconfig
进行备份对于调试来说是个好主意!