Advertisement

QT获取本机网络信息

阅读量:

直接上代码:

复制代码
  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+=tr("硬件地址:")+interface.hardwareAddress()+"\n";
    
     QList<QNetworkAddressEntry> entryList=interface.addressEntries();
    
     for(int j=0;j<entryList.count();j++)
    
     {
    
         QNetworkAddressEntry entry=entryList.at(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,tr("Detail"),detail);<span style="color:#c0c0c0;">
    
 </span>

接下来解释每行代码的意思:

定义一个字符串detail,并将其存储所有在同一网络下的主机。通过遍历所有网络接口并将其存储到列表中这些主机均位于同一网络环境中。逐个遍历每台主机并提取其相关信息设备和硬件地址可以直接获取而IP地址信息则需要特别处理子网掩码和广播地址均为实体类类型。最后将提取的所有信息会被整合并显示在QMessageBox控件上需要注意的是该控件还支持多种功能如弹出窗口设置提示信息等

复制代码
  QString localHostName=QHostInfo::localHostName();

    
     qDebug()<<localHostName;
    
     ui->lineEdit->setText(localHostName);
    
     QHostInfo hostinfo=QHostInfo::fromName(localHostName);
    
     QList<QHostAddress> listAdress=hostinfo.addresses();
    
     if(!listAdress.isEmpty())
    
     {
    
         qDebug()<<"list不为空";
    
       ui->lineEdit_2->setText(listAdress.first().toString());

读取本机名和IP地址。

全部评论 (0)

还没有任何评论哟~