Qt简单网络运用获得本机IP
2016-03-22 11:30
477 查看
使用QHostInfo、QNetworkInterface和QNetworkAddressEntry类可以获得本机IP
1.要连接网络必须在qt项目文件中加添
2.使用QHostInfo::localHostName();获得本机主机名,通过主机名调用QHostInfo::fromName(localHostName);得到QHostInfo 对象,然后调用它的addresses方法获得本机Ip地址表。
3.也可以使用QNetworkInterface类的allInterfaces方法获得一个网络接口列表,通过其方法可以获得设备名和一些相关信息。
具体代码如下:
因为本人为笔记本信息较多,故输入到文件中进行查看。初学有问题请指正,谢谢!
1.要连接网络必须在qt项目文件中加添
QT+= network
2.使用QHostInfo::localHostName();获得本机主机名,通过主机名调用QHostInfo::fromName(localHostName);得到QHostInfo 对象,然后调用它的addresses方法获得本机Ip地址表。
3.也可以使用QNetworkInterface类的allInterfaces方法获得一个网络接口列表,通过其方法可以获得设备名和一些相关信息。
具体代码如下:
QString detail = ""; QList<QNetworkInterface>list = QNetworkInterface::allInterfaces(); for(int i = 0;i < list.count();i++) { QNetworkInterface interface = list.at(i); detail = detail + tr("设备:") + interface.name() + "\n"; detail = detail + tr("硬件地址:") + interface.hardwareAddress() + "\n"; QList<QNetworkAddressEntry> entryList = interface.addressEntries(); for (int j = 0; j < entryList.count();j++) { QNetworkAddressEntry entry = entryList.at(j); detail = detail + "\t" + "ip地址:" + entry.ip().toString() + "\n"; detail = detail + "\t" + "子网掩码:" + entry.netmask().toString() + "\n"; detail = detail + "\t" + "广播地址:" + entry.broadcast().toString() + "\n"; } } QMessageBox::information(this,tr("Detail"),detail); QFile file("detail.txt"); if (file.open(QFile::WriteOnly|QFile::Truncate)) { QTextStream stream(&file); stream << detail; } file.close();
因为本人为笔记本信息较多,故输入到文件中进行查看。初学有问题请指正,谢谢!