QT如果要进行网络编程首先需要在.pro中添加如下代码:QT += network 在头文件中包含相关头文件 #include <QHostInfo> #include <QNetworkInterface>
void Widget::btn_click() { //获取主机名称 QString s=QHostInfo::localHostName(); //根据主机名获取主机其他信息 QHostInfo info=QHostInfo::fromName(s); /*获取主机所有的网络地址,IP地址跟网卡有关系,一个主机可能存在多个网卡或者虚拟机网卡*/ QList<QHostAddress> list=info.addresses(); if(!list.isEmpty()) { /*设置一个迭代器*/ QList<QHostAddress>::iterator i; for(i=list.begin();i!=list.end();i++) { QMessageBox::information(this,"主机地址",(*i).toString()); } } label1->setText(s); }
void Widget::btn_click() { QString detail; /*得到本机所有的网络接口信息*/ QList<QNetworkInterface> list=QNetworkInterface::allInterfaces(); QList<QNetworkInterface>::iterator i; for(i=list.begin();i!=list.end();i++) { QNetworkInterface interface=*i; /*获取设备名字*/ detail=tr("设备:")+interface.name()+"\n"; detail+=tr("硬件地址:")+interface.hardwareAddress()+"\n"; QList<QNetworkAddressEntry> entrylist=interface.addressEntries(); QList<QNetworkAddressEntry>::iterator j; for(j=entrylist.begin();j!=entrylist.end();j++) { // QNetworkAddressEntry entry=*j; detail+="\t"+tr("IP地址:")+entry.ip().toString()+"\n"; detail+="\t"+tr("子网掩码:")+entry.netmask().toString()+"\n"; detail+="\t"+tr("广播地址:")+entry.broadcast().toString()+"\n"; } QMessageBox::information(this,"主机信息",detail); } }