QtCreator 网络编程——获取网络接口信息(QHostInfo,QNetworkInterface ,QNetworkAddressEntry)
来源:互联网 发布:淘宝卫衣店铺推荐 编辑:程序博客网 时间:2024/06/14 16:05
1. 将主机名解析为IP地址
QHostInfo 用于主机名的查找,它提供了两个便捷的静态函数
fromName():会阻塞并返回一个QHostInfo对象
QHostInfo info = QHostInfo::fromName("www.baidu.com");
qDebug() << "Ip:" << info.addresses();
loopupHost():异步进行,每当找到一个主机时,都会发射信号QHostAddress address;//输出找到的IP地址foreach (address, info.addresses()) {qDebug() << address;if (address.protocol() == QAbstractSocket::IPv4Protocol)qDebug() << address.toString();}
它需要制定一个主机名,一个QObject指针和一个槽。可以执行名称查找,当完成后悔调用制定的QObject对象的槽,查找工作是在其他线程完成的。是异步的。
头文件中声明私有槽
private slots:
void lookedUp(const QHostInfo &host);
QHostInfo::lookupHost("www.baidu.com",this,SLOT(lookedUp(QHostInfo)));//
void MainWindow::lookedUp(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "lookup failed:" << host.errorString() ;
return;
}
foreach (const QHostAddress &address, host.addresses()) {
qDebug() << " found address:" << address.toString() << host.hostName();
}
}
2. 获取接口列表
QNetworkInterface 类来获取主机的IP地址列表和网络接口信息
//获取所有网络接口的列表
QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();
foreach(QNetworkInterface interface, list) {
//接口名称
qDebug() << "Name:" << interface.name();
//硬件地址
qDebug() << "hardwareAddress:" << interface.hardwareAddress();
//获取IP地址条目列表,每个条目包含一个IP地址,一个子网掩码和广播地址
QList<QNetworkAddressEntry> entryList = interface.addressEntries();
//遍历每一个IP地址条目
foreach (QNetworkAddressEntry entry, entryList) {
//IP地址
qDebug() << "IP address:" << entry.ip().toString();
qDebug() << "netmask:" << entry.netmask().toString();
qDebug() << "Broadcast:" << entry.broadcast().toString();
}
}
0 0
- QtCreator 网络编程——获取网络接口信息(QHostInfo,QNetworkInterface ,QNetworkAddressEntry)
- 五种获取本地网络信息的方法(QHostInfo和QNetworkInterface)
- qt获取网络ip地址的类QHhostInfo,QNetworkInterface,QHostAdress
- ioctl获取网络接口信息
- QtCreator 网络编程——Udp模型(QUdpSocket)
- QtCreator 网络编程——Udp模型(QUdpSocket)
- libpcap 编程一(安装与获取网络接口信息)
- qt获取网卡信息 QNetworkInterface
- linux编程获取网络信息
- Qt网络编程之获取网络信息
- linux网络编程(7)——网络端信息获取和转换
- 自动获取网络接口信息程序
- ios获取网络接口信息的函数
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
- Android——使用Volley+fastJson在新线程中读取网络接口获取天气信息
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
- Linux编程获取网络信息总结
- java网络编程----------获取Socket信息
- slidingmenu和ViewPager滑动冲突的解决方法
- 协同过滤算法
- Android RotateAnimation详解
- 《SAS编程与数据挖掘商业案例》学习笔记之十八
- NYOJ 题目536 开心的mdd(矩阵的最大乘法次数模板)
- QtCreator 网络编程——获取网络接口信息(QHostInfo,QNetworkInterface ,QNetworkAddressEntry)
- CocoaPods安装和使用教程
- Java构造解析Json数据的方法2
- eclipse 使用Maven deploy命令部署构建到Nexus上
- attr() 方法的简单应用实例
- 在MyEclipse中的maven工程中,执行"右击工程文件名"——>Run as——>maven install,编译生成target的过程中出错:
- 京东美的网上订购家电合作项目
- UITableView学习笔记
- 对于加入Linux内核文档翻译的简短教程