如何使用 WMI 查询特定 NIC 的 IP 地址?

如何使用 WMI 查询特定 NIC 的 IP 地址?

我有一台带有两个 NIC 的计算机。我尝试分别查询每个 NIC 的 IP 地址以用于 BGInfo。

文章描述如何仅查询活动网络接口的 IP 地址。它使用以下 WMI 查询

SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True

但是我想通过引用网卡名称来分别查询每个 IP 地址。我尝试了以下查询,但由于无效而失败。

SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Name=""

如何使用 WMI 查询特定 NIC 的 IP 地址?可用的资源很少。

答案1

如何使用 WMI 查询特定 NIC 的 IP 地址?

您需要选择一个属性来使其具体且正确,例如:描述 MAC 地址 IP地址:

从命令行获取它并删除任何不必要的(在此示例中):

wmic nicconfig get macaddress,description|findstr /vb "Microsoft Bluetooth WAN Miniport"
  • 在命令的输出中,选择已经区分哪个是以太网、哪个是 Wi-Fi 的 mac 地址(如果适用),如果不适用,请使用适合您情况的“接口”:
Description                               MACAddress
Realtek PCIe GBE Family Controller        E1-4B-AF-9F-FE-D2
Intel(R) Dual Band Wireless-AC 3165       2C-04-0E-50-F0-E5
  • 在 BGInfo 中添加符合此查询的每个 mac 地址:
IP ehernet: 
SELECT IPAddress FROM Win32_NetworkAdapterConfiguration where MACAddress='E1-4B-AF-9F-FE-D2'

IP wireless:
SELECT IPAddress FROM Win32_NetworkAdapterConfiguration where MACAddress='2C-04-0E-50-F0-E5'


在此处输入图片描述



  • 结果:


在此处输入图片描述


观察:以下是此示例中删除的设备(不必要的设备):

wmic nicconfig get macaddress,description|findstr /vb "Microsoft Bluetooth WAN Miniport"

Microsoft Kernel Debug Network Adapter
Realtek PCIe GBE Family Controller
Intel(R) Dual Band Wireless-AC 3165
Microsoft Wi-Fi Direct Virtual Adapter
Bluetooth Device (Personal Area Network)
WAN Miniport (SSTP)
Microsoft Wi-Fi Direct Virtual Adapter
Apple Mobile Device Ethernet

笔记:为了便于说明,我在两个请求中使用了相同的 mac 地址,这也解释了为什么两个请求中的 ip 是相同的,而且 mac 地址也来自同一个虚假 MAC 地址生成

答案2

您可以像这样查询来获取特定网络适配器的 IP 地址:

wmic path win32_networkadapterconfiguration where "IPEnabled=True" get caption,ipaddress | find /i "ADAPTER NAME"

对于所有适配器(已启用 IP):

wmic path win32_networkadapterconfiguration where "IPEnabled=True" get caption,ipaddress

相关内容