![]() |
1
1
您的问题有些困难,因为获取“当前”网络适配器可能非常复杂——windows根据网络适配器配置和目标可达性来路由数据包,因此您的“当前”适配器可能随时更改……但由于您已经知道如何检索可用适配器的IP和MAC(“硬件地址”),因此您可以简单地使用黑客来检索MAC用于您当前的IP,并在我的第二个功能中进行过滤/搜索!字段“PhysicalAddress”是您要查找的地址,即MAC地址 我有过这样的经历:唯一的、有点可靠的方法是通过 GetIfTable 和 GetIfTable2 ,前者有所回归 superficial adpater info 后者提供了 detail . 这是一个示例实现,因为它使用了详细的功能,您还可以查询WLAN适配器:
现在,您需要做的就是遍历列表并过滤掉禁用的适配器等:
现在很容易生成WLAN适配器和非WLAN适配器的列表 (参见第二个函数中的注释) ,搜索您当前的MAC并得出结论:它是有线或无线的,但请注意这些列表 也许 重叠,因为 802.11 基本上是的扩展版本 802.3 但是 802.3有 不 包括802.11 (因为它是一个扩展) -因此,为了将WLAN与非WLAN适配器区分开来,您需要一点if/else逻辑。
您也可以使用
WlanEnumInterfaces
获取所有WLAN适配器,但基本上与使用上面的功能相同
|
![]() |
2
0
首先,非常感谢用户@Nighthawk441为我指明了正确的方向。如果没有这个用户,我肯定不会想出解决方案。 话虽如此,我现在的解决方案充其量就是破解。这似乎是可行的,但我认为这甚至不是最佳选择。因此,我将把这作为一个答案,但如果找到更好的答案,我暂时不会接受它。我也非常乐意接受任何人对这个答案的评论。
简而言之,我所做的是从
看看这个参考资料真的帮了我: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365819%28v=vs.85%29.aspx 因此,感谢夜鹰向我提供了这些信息。希望这对其他人有所帮助!如果有人有任何意见或任何其他答案,请随时发布!谢谢 |
|
3
0
根据@specializt的回答,经过一些小的修改,我的工作如下:
感谢@specializt |
![]() |
Community wiki · 需要改变的用户界面模式? 1 年前 |
![]() |
LITzman · 使用状态处理颜色主题更改 1 年前 |
![]() |
Community wiki · 进程。退出(0):输出消失? 2 年前 |
![]() |
arsaces · 将文本添加到特定文件的末尾 2 年前 |
![]() |
YGranja · 库<图形。h> MinGW-W64缺少 2 年前 |
![]() |
Felipe Palermo · Ctrl键仍被按下,按键事件() 2 年前 |
![]() |
HCJ · win cmd中的批处理脚本循环 2 年前 |