系統資訊獲取 10,獲取本機IP位址

2021-06-20 10:32:00 字數 1159 閱讀 2681

使用上文所說的 方法得到主機名,再使用函式 gethostbyname 可以得到 hostent結構的主機實體。

當中儲存了主機的一些資訊,包括ip。

gethostbyname 原型:

struct hostent far *

wsaapi

gethostbyname(

__in const char far * name

);

返回的 hostent 結構:

struct  hostent ;

hostent是host entry的縮寫,該結構記錄主機的資訊,包括主機名、別名、位址型別、位址長度和位址列表。

之所以主機的位址是乙個列表的形式,原因是當乙個主機有多個網路介面時,就會有多個位址。

我們這裡求本機的ip,可以使用第乙個位址。

#include "stdafx.h"

#include #include #pragma comment(lib,"ws2_32.lib")

using namespace std;

int _tmain(int argc, _tchar* argv)

; wsadata data;

if(wsastartup(makeword(1,1),&data) != 0)

//得到主機名

if(gethostname(szcomputername,max_path) == socket_error)

//得到主機實體

struct hostent *p = gethostbyname(szcomputername);

if (p == null)

//取得位址

in_addr addr;

memcpy(&addr, p->h_addr_list[0], sizeof(in_addr));

//把ip位址轉換為點分十進位制形式的字串,如192.168.0.***形式

std::string localip;

localip.assign(inet_ntoa(addr));

wsacleanup();

return 0;

}

Windows phone8 獲取本機 IP 位址

可以在 bing 查詢中輸入 my ip address 然後確認這樣可以看到自己的 ip。如果需要通過 程式設計來獲取本機 ip,可以使用以下 注意 此段 在 wp7.1 上無法編譯通過,networkinformation 未定義。1 public class gethostipaddress ...

獲取本機IP

獲取本機ip char name 255 gethostname name,sizeof name cstring ip lphostent lphost lphost gethostbyname name in addr ppaddr in addr lphost h addr list in a...

獲取本機IP位址

cstring strlocalip char szhostname 64 memset szhostname,0x00,sizeof szhostname gethostname szhostname,sizeof szhostname phostent phost gethostbyname s...