Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137543
  • 博文数量: 32
  • 博客积分: 582
  • 博客等级: 中士
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-24 22:38
文章分类

全部博文(32)

文章存档

2012年(3)

2011年(29)

我的朋友

分类: 嵌入式

2011-12-23 20:55:53

通过QNetworkInterface类来获取本机的IP地址和网络接口信息。

QNetworkInterface类提供了程序所运行时的主机的IP地址和网络接口信息的列表。在每一个网络接口信息中都包含了0个或多个IP地址,而每一个IP地址又包含了和它相关的子网掩码和广播地址,它们三者被封装在一个QNetworkAddressEntry对象中。网络接口信息中也提供了硬件地址信息。我们将widge.cpp构造函数中以前添加的代码删除,然后添加以下代码。

  1. widge.cpp构造函数中添加以下代码。
  2. QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();
  3.     //获取所有网络接口的列表
  4.     foreach(QNetworkInterface interface,list)
  5.     { //遍历每一个网络接口
  6.         qDebug() << "Device:"<<interface.name();
  7.         //设备名
  8.         qDebug() << "HardwareAddress:"<<interface.hardwareAddress();
  9.         //硬件地址
  10.         QList<QNetworkAddressEntry> entryList = interface.addressEntries();
  11.      //获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
  12.         foreach(QNetworkAddressEntry entry,entryList)
  13.         {//遍历每一个IP地址条目
  14.             qDebug()<<"IP Address:"<<entry.ip().toString();
  15.             //IP地址
  16.             qDebug()<<"Netmask:"<<entry.netmask().toString();
  17.             //子网掩码
  18.             qDebug()<<"Broadcast:"<<entry.broadcast().toString();
  19.             //广播地址
  20.         }
  21. }

总结:

在这一节中我们学习了如何来查找本机网络设备的相关信息。其实,以后最常用的还是其中获取IP地址的方法。我们以后可以利用一个函数来获取IP地址和MAC地址:

QString myIP::getIP()  //获取ip地址

{ QList<QHostAddress> list = QNetworkInterface::allAddresses(); foreach (QHostAddress address, list) { if(address.protocol() == QAbstractSocket::IPv4Protocol)//我们使用IPv4地址 return address.toString(); } return 0;}

QString myIP::getMAC()  //获取获取本机物理地址

{ QList<QNetworkInterface> list = QNetworkInterface::allInterfaces(); foreach(QNetworkInterface interface,list) { return interface.hardwareAddress(); } return 0;}
阅读(4952) | 评论(0) | 转发(0) |
0

上一篇:QT学习笔记(转载)

下一篇:QT制作时钟界面

给主人留下些什么吧!~~