Qt網路程式設計之獲取主機資訊

2021-10-05 01:37:58 字數 2471 閱讀 9546

qhostinfo類用於獲取主機的一些網路資訊。

qhostinfo類有下面這些公有函式:

[

static

] qstring qhostinfo::

localhostname()

;[static

] qhostinfo qhostinfo::

fromname

(const qstring &name);[

static

] qstring qhostinfo::

localdomainname()

;[static

]int qhostinfo::

lookuphost

(const qstring &name, qobject *receiver,

const

char

*member)

;

localhostname函式獲取本機主機名。

fromname函式根據主機名獲取主機的資訊。

localdomainname函式返回本機dns網域名稱。

lookuphost以非同步方式查詢主機的ip位址,並返回乙個表示本次查詢的id。name引數表示主機名,可以為主機名、網域名稱或ip位址。引數receiver指定槽函式的接收者,member指定槽函式的名稱。非同步方式表示執行lookuphost後,程式可能需要花一定時間用來查詢,但不阻塞程式的繼續執行(類似多執行緒???),查詢完畢後,通過訊號通知設定的槽函式,在槽函式裡讀取查詢的結果。

#include

qstring hostname = qhostinfo::

localhostname()

;//獲取本機主機名

qhostinfo hostinfo = qhostinfo::

fromname

(hostname)

;//獲取本機資訊

qlist addlist=hostinfo.

addresses()

;//獲取ip位址列表if(

!addlist.

isempty()

)for

(int i=

0;icount()

;i++

) qstring ipaddress = ahost.

tostring()

;//返回ip位址的字串

}

//用lookuphost根據主機名、網域名稱或ip位址查詢主機相關資訊

qstring hostname=ui-

>edithost-

>

text()

;//獲取主機名

//查詢主機名為hostname的主機資訊,查詢完畢後執行this物件的槽函式lookeduphostinfo(qhostinfo)

qhostinfo::

lookuphost

(hostname,

this

,slot

(lookeduphostinfo

(qhostinfo)))

;//槽函式部分**

void dialog::

lookeduphostinfo

(const qhostinfo &host)

[

static

] qlist qnetworkinte***ce::

alladdresses()

;[static

] qlist qnetworkinte***ce::

allinte***ces()

;qlist qnetworkinte***ce::

addressentries()

const

;

alladdresses函式返回主機上查詢到的所有ip位址列表。

allinte***ces函式返回主機上查詢到的所有網路介面列表。

addressentries函式返回網路介面(包括子網掩碼和廣播位址,ip位址)列表。

qlist addlist=qnetworkinte***ce::

alladdresses()

;//獲取主機ip位址列表

/***************************/

qlist list=qnetworkinte***ce::

allinte***ces()

;for

(int i =

0;i < list.

count()

;i++

)}

Qt網路程式設計 主機資訊

為了編寫乙個類似qq的聊天程式,學習了一下網路程式設計。在qt的幫助手冊中可以看到qt networkprogramming 模組,裡面有介紹和一些例程。我從這些例程中慢慢摸索,慢慢學習了一些網路程式設計的知識,總結一下吧。qt network 中有很多模組,介紹一下 這是乙個網路介面類,可以獲得網...

Qt網路程式設計學習 獲取本機網路資訊)

補充 qgridlayout中的 addwidget引數的意義 依次代表 行 列 占用行數 占用列數 主要標頭檔案 qnetworkinte ce qhostinfo 主要函式 qstring localhostname qhostinfo localhostname 獲得本機主機名qhostinf...

QT獲取本機網路資訊

直接上 qstring detail qlistlist qnetworkinte ce allinte ces for int i 0 ientrylist inte ce.addressentries for int j 0 j 接下來解釋每行 的意思 定義乙個字串detail,獲取所有網路介面...