QT 请教如何获取有效MAC地址和IP地址(IPV4)
在网上这样来获取MAC地址和IP:
QList<QNetworkInterface>list = QNetworkInterface::allInterfaces();
foreach(QNetworkInterface interface, list) //遍历每个网络接口
{
//硬件地址
qDebug() << "HardwareAddress:" << interface.hardwareAddress();
//获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
QList<QNetworkAddressEntry>entryList = interface.addressEntries();
foreach(QNetworkAddressEntry entry, entryList)//遍历每一个IP地址条目
{
//IP地址
qDebug() << "IP Address: " << entry.ip().toString();
//子网掩码
qDebug() << "Netmask: " << entry.netmask().toString();
//广播地址
qDebug() << "Broadcast: " << entry.broadcast().toString();
}
}
运行的结果是这样的,这是在win7系统下运行的结果
HardwareAddress: "58:91:CF:33:A6:71"
IP Address: "FE80::D0B8:3B91:5BB3:CCA4%13"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.0.100"
Netmask: "255.255.255.0"
Broadcast: "192.168.0.255"
HardwareAddress: "84:8F:69:D1:FC:42"
IP Address: "FE80::34D5:3E98:C8BD:9A20%12"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "169.254.154.32"
Netmask: ""
Broadcast: ""
HardwareAddress: "58:91:CF:33:A6:75"
IP Address: "FE80::50B7:7B6F:A027:3732%10"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "169.254.55.50"
Netmask: ""
Broadcast: ""
HardwareAddress: "00:50:56:C0:00:01"
IP Address: "FE80::E009:E055:7443:B876%17"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.24.1"
Netmask: "255.255.255.0"
Broadcast: "192.168.24.255"
HardwareAddress: "00:50:56:C0:00:08"
IP Address: "FE80::C910:AC4A:1562:3F86%18"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.112.1"
Netmask: "255.255.255.0"
Broadcast: "192.168.112.255"
HardwareAddress: ""
IP Address: "::1"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
IP Address: "127.0.0.1"
Netmask: ""
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:64%22"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:7001%19"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::100:7F:FFFE%14"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:1801%21"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
问题是,我怎样来提取有效的MAN地址和IP呢,我通过MAC地址扫描器得到第一个MAC地址和IP是有效的,其他的 哪些怎么去屏蔽掉呢。
QList<QNetworkInterface>list = QNetworkInterface::allInterfaces();
foreach(QNetworkInterface interface, list) //遍历每个网络接口
{
//硬件地址
qDebug() << "HardwareAddress:" << interface.hardwareAddress();
//获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
QList<QNetworkAddressEntry>entryList = interface.addressEntries();
foreach(QNetworkAddressEntry entry, entryList)//遍历每一个IP地址条目
{
//IP地址
qDebug() << "IP Address: " << entry.ip().toString();
//子网掩码
qDebug() << "Netmask: " << entry.netmask().toString();
//广播地址
qDebug() << "Broadcast: " << entry.broadcast().toString();
}
}
运行的结果是这样的,这是在win7系统下运行的结果
HardwareAddress: "58:91:CF:33:A6:71"
IP Address: "FE80::D0B8:3B91:5BB3:CCA4%13"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.0.100"
Netmask: "255.255.255.0"
Broadcast: "192.168.0.255"
HardwareAddress: "84:8F:69:D1:FC:42"
IP Address: "FE80::34D5:3E98:C8BD:9A20%12"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "169.254.154.32"
Netmask: ""
Broadcast: ""
HardwareAddress: "58:91:CF:33:A6:75"
IP Address: "FE80::50B7:7B6F:A027:3732%10"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "169.254.55.50"
Netmask: ""
Broadcast: ""
HardwareAddress: "00:50:56:C0:00:01"
IP Address: "FE80::E009:E055:7443:B876%17"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.24.1"
Netmask: "255.255.255.0"
Broadcast: "192.168.24.255"
HardwareAddress: "00:50:56:C0:00:08"
IP Address: "FE80::C910:AC4A:1562:3F86%18"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
IP Address: "192.168.112.1"
Netmask: "255.255.255.0"
Broadcast: "192.168.112.255"
HardwareAddress: ""
IP Address: "::1"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
IP Address: "127.0.0.1"
Netmask: ""
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:64%22"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:7001%19"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::100:7F:FFFE%14"
Netmask: "FFFF:FFFF:FFFF:FFFF::"
Broadcast: ""
HardwareAddress: "00:00:00:00:00:00:00:E0"
IP Address: "FE80::5EFE:C0A8:1801%21"
Netmask: "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
Broadcast: ""
问题是,我怎样来提取有效的MAN地址和IP呢,我通过MAC地址扫描器得到第一个MAC地址和IP是有效的,其他的 哪些怎么去屏蔽掉呢。
...全文
相关推荐
Qt获取IP地址、MAC地址等网卡信息,区分本地网卡、无线网卡和虚拟网卡
在Windows中,可以使用`GetAdaptersAddresses()`函数,同样通过遍历结果来获取IP地址。IP地址通常有IPv4和IPv6两种类型,需要根据需要进行判断和处理。2.
QT如何获取有效MAC地址和IP地址[转]
//在网上这样来获取MAC地址和IP: QList&lt;QNetworkInterface&gt;list = QNetworkInterface::allInterfaces(); foreach(QNetworkInterface interface, list) //遍历每个网络接口 { //硬件地址 qDebug() &lt;...
获取局域网中所有的IP地址以及MAC地址
IP地址分为IPv4和IPv6两种,通常我们所说的IP地址多指的是IPv4地址,它由四个数字组成,每个数字范围在0到255之间,用点分十进制表示。
android 获取本机的IP地址和mac物理地址的实现方法
总结起来,获取Android设备的IP地址和MAC地址主要涉及到`WifiManager`和`WifiInfo`类的使用。
Qt获取机器对应MAC及IP地址
在进行Qt项目开发时,获取网络接口信息,包括本机的MAC地址和IP地址,是常见的需求之一。MAC地址是网络硬件的物理地址,而IP地址则是在网络中标识机器的逻辑地址。


