Qt獲取本機的ip位址 MAC位址

2021-10-01 01:59:39 字數 977 閱讀 1010

qstring gethostipaddress()

}// 如果沒有找到,則以本地ip位址為ip

if (stripaddress.isempty())

stripaddress = qhostaddress(qhostaddress::localhost).tostring();

return stripaddress;

}

qstring gethostmacaddress()

}return strmacaddr;

}

1.使用qhostinfo獲取主機名和ip位址。

(1)獲取主機名。

qstring localhostname = qhostinfo::localhostname();

(2)獲取本機的ip位址。

若本機只有一條ip位址。

qhostinfo info = qhostinfo::fromname(localhostname);

但是,有些主機可能有好幾條ip位址,其中可能包含了ipv4和ipv6的位址,一般我們需要使用ipv4的位址,所以我們可以只輸出ipv4的位址。若是ipv6位址,可以使用qabstractsocket::ipv6protocol

foreach(qhostaddress address,info.addresses())

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

qdebug() << address.tostring();

(3)以主機名獲取ip位址。

qhostinfo類可以用來獲取任意主機名的ip位址,如乙個**的ip位址。在這裡我們可以使用lookuphost()函式。它是基於訊號和槽的,一旦查詢到了ip位址,就會觸發槽函式。具體用法如下。

void widget::lookedup(const qhostinfo &host)

Qt獲取本機ip位址

最近有個專案需要手機可以與pc進行tcp傳輸檔案,pc做server時在我的電腦可以,在其他電腦時手機連線超時。檢視了埠,防火牆等等問題未能解決。最後發現是qt在獲取ip位址時獲取錯了,獲取的是第乙個而不是正在使用的。qstring stripaddress qprocess cmd pro qst...

QT獲取本機IP和MAC位址的方法

qnetworkinte ce localinte ce localinte ce.inte cefromname 裝置名稱 例如 eth0 qstring mac localinte ce.hardwareaddress 90 fb a6 11 52 63 int localnetmask 0xf...

Qt5 12獲取本機IP位址

最近在寫有關qt網路通訊方面,下面是乙個小模組,獲取主機的ip位址。qstring get local ip return 0.0.0.0 首先獲取本機所有ip位址資訊,包括環迴位址如127.0.0.1,以及本機位址如192.168.1.x等等,有安裝虛擬機器的還有其他位址等等。brief 檢測當前...