zoukankan      html  css  js  c++  java
  • qt获取本机网络信息

    networkinformation.h

    #include<QtGui/QWidget>
    #include<QLabel>
    #include<QPushButton>
    #include<QLineEdit>
    #include<QGridLayout>
    #include<QHostInfo>
    
    
    class NetworkInformation:public QWidget
    {
    	Q_OBJECT
    	
    	public:
    		NetworkInformation(QWidget *parent=0);
    		void getHostInformation();
    		//~NetworkInformation();
    	
    	public slots:
    		void slotDetail();
    
    	private:
    		QLabel *hostLabel;
    		QLineEdit *LineEditLocalHostName;
    		QLabel *ipLabel;
    		QLineEdit *LineEditAddress;
    		QPushButton *detailBtn;
    		QGridLayout *mainLayout;
    };

    networkinformation.cpp:

    #include<QNetworkInterface>
    #include<QMessageBox>
    #include"networkinformation.h"
    
    
    NetworkInformation::NetworkInformation(QWidget *parent)
    	:QWidget(parent)
    {
    	hostLabel=new QLabel(tr("host:"));
    	LineEditLocalHostName=new QLineEdit;
    	ipLabel=new QLabel(tr("IP:"));
    	LineEditAddress=new QLineEdit;
    
    	detailBtn=new QPushButton(tr("details"));
    
    	mainLayout=new QGridLayout(this);
    	mainLayout->addWidget(hostLabel,0,0);
    	mainLayout->addWidget(LineEditLocalHostName,0,1);
    	mainLayout->addWidget(ipLabel,1,0);
    	mainLayout->addWidget(LineEditAddress,1,1);
    	mainLayout->addWidget(detailBtn,2,0,1,2);
    
    	getHostInformation();
    
    	connect(detailBtn,SIGNAL(clicked()),this,SLOT(slotDetail()));
    }
    
    
    void NetworkInformation::getHostInformation()
    {
    	QString localHostName=QHostInfo::localHostName();
    	LineEditLocalHostName->setText(localHostName);
    
    	QHostInfo hostInfo=QHostInfo::fromName(localHostName);
    	QList<QHostAddress> listAddress=hostInfo.addresses();
    
    	if(!listAddress.isEmpty())
    	{
    		LineEditAddress->setText(listAddress.first().toString());
    	}
    }
    
    
    void NetworkInformation::slotDetail()
    {
    	QString detail="";
    	QList<QNetworkInterface> list=QNetworkInterface::allInterfaces();
    
    	for(int i=0;i<list.count();i++)
    	{
    		QNetworkInterface interface=list.at(i);
    		detail=detail+tr("shebei:")+interface.name()+"
    ";
    		QString hardwareAddress=interface.hardwareAddress();
    		detail=detail+tr("hardware address:")+interface.hardwareAddress()+"
    ";
    		QList<QNetworkAddressEntry> entryList=interface.addressEntries();
    
    		for(int j=0;j<entryList.count();j++)
    		{
    			QNetworkAddressEntry entry=entryList.at(j);
    			detail=detail+"	"+tr("ip address:")+entry.ip().toString()+"
    ";
    			detail=detail+"	"+tr("netmask:")+entry.netmask().toString()+"
    ";
    			detail=detail+"	"+tr("broadcast:")+entry.broadcast().toString()+"
    ";
    		}
    	}
    	QMessageBox::information(this,tr("Detail"),detail);
    }

    main.cpp:

    #include<QtGui/QApplication>
    #include"networkinformation.h"
    #include<QTextCodec>
    
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc,argv);
    	QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    	NetworkInformation w;
    	w.show();
    	return a.exec();
    }


  • 相关阅读:
    mybatis-cache model
    多线程开发(1)
    正则表达式(3) — 正则表达式库
    正则表达式(2) — 表达式规则
    我在迈瑞工作的两年总结
    正则表达式(1) — 常用的表达式
    C++系列(2) — 智能指针
    C++系列(1) — string
    路径去除前缀
    SIMD性能优化
  • 原文地址:https://www.cnblogs.com/bzyzhang/p/5399626.html
Copyright © 2011-2022 走看看