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); } }