您的位置:首页 > 游戏 > 游戏 > 网站被攻击_东营网站建设收益高_seo技巧seo排名优化_哪个杭州seo好

网站被攻击_东营网站建设收益高_seo技巧seo排名优化_哪个杭州seo好

2024/12/23 4:50:42 来源:https://blog.csdn.net/GoForwardToStep/article/details/142488001  浏览:    关键词:网站被攻击_东营网站建设收益高_seo技巧seo排名优化_哪个杭州seo好
网站被攻击_东营网站建设收益高_seo技巧seo排名优化_哪个杭州seo好

一、简述

今天给大家分享一个获取本机IP地址和Mac地址的方法,经过多次测试,台式机、笔记本等多个设备,暂时没有发现问题。

由于很多时候本地安装了虚拟机、蓝牙、无线网卡或者其他设备等,会有多个Mac地址,所以需要进行多次过滤,其中也是遇到了很多坑,经过多次改进,如果小伙伴们有其他更好的方法,欢迎一起讨论。

二、代码之路

如果是使用VS开发记得添加上Network模块,如果是QtCreator则在pro文件中添加上Qt += Network。

在这里插入图片描述

下面就是具体实现代码,大家可以直接拷贝到自己的工程中进行测试

/*********记得Qt模块中加上Network**********/
#include <QNetworkInterface>
void getLocalIpAndMacAddress(QString& ipAddress, QString& macAddress)
{for (QNetworkInterface netInterface : QNetworkInterface::allInterfaces()){//MAC地址if (netInterface.hardwareAddress().size() == 17){// 包含以太网、Wifi等类型;QNetworkInterface::InterfaceType type = netInterface.type();if (type == QNetworkInterface::Ethernet|| type == QNetworkInterface::Ieee80211|| type == QNetworkInterface::Wifi) {QNetworkInterface::InterfaceFlags flags = netInterface.flags();bool isUp = flags & QNetworkInterface::IsUp;bool isRunning = flags & QNetworkInterface::IsRunning;bool isVirtual = flags & QNetworkInterface::IsLoopBack;macAddress = netInterface.hardwareAddress().replace(":", "-");QString name = netInterface.humanReadableName();// 测试信息;
//                 qDebug() << "macAddress:" << macAddress << "DisplayName:" << netInterface.humanReadableName();
//                 qDebug() << flags << "\r\n";// 剔除VMware字段;if (isUp && isRunning && !isVirtual && !name.contains("VMware")) {macAddress = netInterface.hardwareAddress().replace(":", "-");// 获取IPV4地址;QList<QNetworkAddressEntry> addressEntries = netInterface.addressEntries();for (QNetworkAddressEntry entry : addressEntries) {if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) {ipAddress = entry.ip().toString();break;}}// 测试信息;
//                     qDebug() << QString("IpAdress:%1, MacAddress:%2, DisplayName:%3, Type:%4")
//                         .arg(ipAddress).arg(macAddress).arg(netInterface.humanReadableName()).arg(type);if (ipAddress.isEmpty() || macAddress.isEmpty())continue;elsebreak;}}}}// check打印(可去除)if (!ipAddress.isEmpty())qDebug() << QString("Local IpAddress:%1").arg(ipAddress);elseqDebug() << "Get local IpAddress failed";if (!macAddress.isEmpty())qDebug() << QString("Local MacAddress:%1").arg(macAddress);elseqDebug() << "Get local MacAddress failed.";
}void testFunction()
{QString ipAddress;QString macAddress;getLocalIpAndMacAddress(ipAddress, macAddress);qDebug() << "ipAddress:" << ipAddress;qDebug() << "macAddress:" << macAddress;}

大家可以在cmd控制台窗口中通过下面的命令输出本机设备的操作系统中所有网络配置信息。

ipconfig /all

在这里插入图片描述

下面以台式机网口插网线为例,可以对比代码执行结果:

在这里插入图片描述


觉得有帮助的小伙伴可以手动点个赞,如果很有帮助也可以打赏,一块两块也是情,哈哈哈!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com