您的位置:首页 > 理论基础 > 计算机网络

QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址

2016-01-06 22:10 811 查看

获取主机名称

/*
* 名称:get_localmachine_name
* 功能:获取本机机器名称
* 参数:no
* 返回:QString
*/
QString CafesClient::get_localmachine_name()
{
QString machineName     = QHostInfo::localHostName();
return machineName;
}


1

2

3

4

5

6

7

8

9

10

11

获取本机IP地址

/*
* 名称:get_localmachine_ip
* 功能:获取本机的IP地址
* 参数:no
* 返回:QString
*/
QString CafesClient::get_localmachine_ip()
{
QString ipAddress;
QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
// use the first non-localhost IPv4 address
for (int i = 0; i < ipAddressesList.size(); ++i) {
if (ipAddressesList.at(i) != QHostAddress::LocalHost &&
ipAddressesList.at(i).toIPv4Address()) {
ipAddress = ipAddressesList.at(i).toString();
break;
}
}
// if we did not find one, use IPv4 localhost
if (ipAddress.isEmpty())
ipAddress = QHostAddress(QHostAddress::LocalHost).toString();
return ipAddress;
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

获取本机网络连接名、MAC地址

/*
* 名称:get_localmachine_mac
* 功能:获取本机的MAC地址
* 参数:no
* 返回:void
*/
QString CafesClient::get_localmachine_mac()
{
QList<QNetworkInterface> nets       = QNetworkInterface::allInterfaces();
int i = 0;
foreach(QNetworkInterface ni,nets)
{
i++;
qDebug()<<i<<ni.name()<<ni.hardwareAddress()<<ni.humanReadableName();
}
}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

获取本机子网掩码、广播地址

//在上个函数的环境下
QList<QNetworkAddressEntry> entryList =interface.addressEntries();
//获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
foreach(QNetworkAddressEntry entry,entryList)
{
//遍历每一个IP地址条目
qDebug()<<”IP Address:
“<<entry.ip().toString();
//IP地址
qDebug()<<”Netmask:
“<<entry.netmask().toString();
//子网掩码
qDebug()<<”Broadcast:
“<<entry.broadcast().toString();
//广播地址
}

http://blog.csdn.net/u013007900/article/details/50444459[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: