日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt获取开发板ip地址_qt获取网络ip地址的类

發布時間:2025/3/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt获取开发板ip地址_qt获取网络ip地址的类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學習qt網絡編程,基于tcp和udp協議。

看了一些別人的程序和qt4自帶的例子,困擾我最大的問題就是獲取ip的類,總結起來還挺多的。

主要介紹常用的QtNetwork Module中的QHostInfo,QHostAddress,QNetworkInterface和QNetAddressEntry等類。

1。QHostInfo類獲取主機名和ip地址

(1)獲取主機名: QHostInfo::localHostName()

QString localHostName=QHostInfo::localHostName();

(2)獲取ip地址: QHostInfo info=QHostInfo::fromName(localHostName);//根據上邊獲得的主機名來獲取本機的信息

info.addresses();//QHostInfo的address函數獲取本機ip地址

如果存在多條ip地址ipv4和ipv6:

foreach(QHostAddressaddress,info.addresses())

{

if(address.protocol()==QAbstractSocket::IPv4P)//只取ipv4協議的地址

qDebug()<

}

如果是ipv6地址,可以使用QAbstractSocket::ipv6Protocol來實現。

QHostAddress類是管理ip地址的類,所有的ip都歸這個類管理。

(3)以主機名獲取ip

QHostInfo類可以獲取任意主機名的ip,比如獲取網站的ip地址,可以用lookupHost()函數來獲取,他是基于信號和槽的,一旦發現ip地址就會觸發槽函數。

首先定義一個槽函數:

void lookedup(const QHostInfo &host)

{

qDebug()<

}

QHostInfo::lookupHost("www.baidu.com" ,

this,SLOT(lookedUp(QHostInfo)));

通過查詢百度網址的ip地址,如果查找到,就會執行lookedUp()函數。

(4)通過ip地址獲取主機名

調用lookupHost()函數,通過輸入ip地址反向查找主機名。將上面的函數換掉。

2。QNetworkInterface類獲取程序運行本機的ip地址和網絡接口信息

QNetworkInterface類提供了程序所運行的主機ip地址和網絡接口信息的列表.??在一個網絡接口信息中,包含一個或多個ip地址,每一個ip地址又包含和它相關的子網掩碼和廣播地址.他們三者別封裝在一個對象中QNetworkAddressEntry,網絡接口信息也包含了硬件地址信息.

QListlist=QNetworkInterface;:allInterfaces();//獲取所有網絡接口信息

foreach(QNetworkInterfaceinterface,list)

{

//便利每一個接口信息

qDebug<

qDebug<

QListentryList=interface.addressEntries();//獲取ip地址和子網掩碼和廣播地址

foreach(QNetworkAddressEntryentry,entryList)

{//便利ip條目列表

qDebug<

qDebug<

qDebug<

}

}

如果只想獲取ip地址可以調用QNetworkInterface類的allAddresses()來獲取ip地址,如:

QStringaddress=QNetworkInterface::allAddresses().first().toString();

獲取所有ip地址:

QListlist=QNetworkInteface::allAddresses();

{

foreach(QHostAddressaddress,list)

{

if(address.protocol()==QAbstractSocket::ipv4protocol)

qDebug<

}

}

http://blog.csdn.net/cateatapple/article/details/40824871

總結

以上是生活随笔為你收集整理的qt获取开发板ip地址_qt获取网络ip地址的类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。