Windows 给出奇怪的 8 字节硬件地址
Windows gives strange 8-byte hardware addresses
我在 Windows 和 Ubuntu Linux 上使用 Qt 获得了 MAC 地址列表。使用以下代码:
QString getMacAddresses()
{
QString text;
foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
if(!(interface.flags() & QNetworkInterface::IsLoopBack))
text += interface.hardwareAddress() + ",";
return text;
}
我在几台电脑上试过了。
它在 Ubuntu Linux 上工作正常:正确的 MAC 地址是 returned。
下面是 Windows 上的示例输出(为方便起见格式化):
00:FF:B0:9B:AA:10
00:A0:C6:00:00:17
EC:F4:BB:6F:DD:3D
00:00:00:00:00:00:00:E0
00:00:00:00:00:00:00:E0
00:00:00:00:00:00:00:E0
那些奇怪的 8 字节 "MAC addresses" 是什么? 它们肯定不是真正的 MAC 地址,因为它只有 6 个字节长。
使用的 Windows 版本是 Windows 7.
在不同的机器上,奇怪地址的数量可以从2个到6个不等。这个地址数量甚至可以在Windows更新后发生变化。而且它们总是在列表的末尾,在真实 MAC 地址之后。
此示例 ipconfig /all
的输出是(出于安全原因删除了一些行):
Ethernet adapter Local Area Connection* 11:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : XXXXXXXXX
Physical Address. . . . . . . . . : 00-FF-B0-9B-AA-10
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Mobile Broadband adapter Mobile Broadband Connection 2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card #2
Physical Address. . . . . . . . . : 00-A0-C6-00-00-17
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Ethernet adapter Local Area Connection:
Description . . . . . . . . . . . : Intel(R) Ethernet Connection I217-LM
Physical Address. . . . . . . . . : EC-F4-BB-6F-DD-3D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::3de4:95c1:524a:19ab%11(Preferred)
IPv4 Address. . . . . . . . . . . : 10.33.203.146(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.33.203.1
NetBIOS over Tcpip. . . . . . . . : Disabled
Tunnel adapter isatap.{D7CEA001-3A2F-4ACA-BB3F-3237AACB4DA6}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{6285C284-8B28-4616-83AE-23E2DDA9DCBE}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{576DFB96-0921-4F13-A7F8-956896780357}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #4
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
QNetworkInterface::hardwareAddress() 上的文档说:
Returns the low-level hardware address for this interface. On Ethernet
interfaces, this will be a MAC address in string representation,
separated by colons.
Other interface types may have other types of hardware addresses.
Implementations should not depend on this function returning a valid
MAC address.
所以,这个方法可以return"other types of hardware addresses"。这些是什么?为什么它总是相同的字符串“00:00:00:00:00:00:00:E0”?
您的问题与 Qt 无关,因为 ipconfig returns 相同。这是Vista和Windows 7的已知问题。
例如,您可能想阅读此内容:
http://www.sevenforums.com/network-sharing/108910-problem-find-out-mac-address.html
我在 Windows 和 Ubuntu Linux 上使用 Qt 获得了 MAC 地址列表。使用以下代码:
QString getMacAddresses()
{
QString text;
foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
if(!(interface.flags() & QNetworkInterface::IsLoopBack))
text += interface.hardwareAddress() + ",";
return text;
}
我在几台电脑上试过了。
它在 Ubuntu Linux 上工作正常:正确的 MAC 地址是 returned。
下面是 Windows 上的示例输出(为方便起见格式化):
00:FF:B0:9B:AA:10
00:A0:C6:00:00:17
EC:F4:BB:6F:DD:3D
00:00:00:00:00:00:00:E0
00:00:00:00:00:00:00:E0
00:00:00:00:00:00:00:E0
那些奇怪的 8 字节 "MAC addresses" 是什么? 它们肯定不是真正的 MAC 地址,因为它只有 6 个字节长。
使用的 Windows 版本是 Windows 7.
在不同的机器上,奇怪地址的数量可以从2个到6个不等。这个地址数量甚至可以在Windows更新后发生变化。而且它们总是在列表的末尾,在真实 MAC 地址之后。
此示例 ipconfig /all
的输出是(出于安全原因删除了一些行):
Ethernet adapter Local Area Connection* 11:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : XXXXXXXXX
Physical Address. . . . . . . . . : 00-FF-B0-9B-AA-10
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Mobile Broadband adapter Mobile Broadband Connection 2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card #2
Physical Address. . . . . . . . . : 00-A0-C6-00-00-17
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Ethernet adapter Local Area Connection:
Description . . . . . . . . . . . : Intel(R) Ethernet Connection I217-LM
Physical Address. . . . . . . . . : EC-F4-BB-6F-DD-3D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::3de4:95c1:524a:19ab%11(Preferred)
IPv4 Address. . . . . . . . . . . : 10.33.203.146(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.33.203.1
NetBIOS over Tcpip. . . . . . . . : Disabled
Tunnel adapter isatap.{D7CEA001-3A2F-4ACA-BB3F-3237AACB4DA6}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{6285C284-8B28-4616-83AE-23E2DDA9DCBE}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{576DFB96-0921-4F13-A7F8-956896780357}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #4
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
QNetworkInterface::hardwareAddress() 上的文档说:
Returns the low-level hardware address for this interface. On Ethernet interfaces, this will be a MAC address in string representation, separated by colons.
Other interface types may have other types of hardware addresses. Implementations should not depend on this function returning a valid MAC address.
所以,这个方法可以return"other types of hardware addresses"。这些是什么?为什么它总是相同的字符串“00:00:00:00:00:00:00:E0”?
您的问题与 Qt 无关,因为 ipconfig returns 相同。这是Vista和Windows 7的已知问题。
例如,您可能想阅读此内容:
http://www.sevenforums.com/network-sharing/108910-problem-find-out-mac-address.html