mfc獲取機器名 本機IP

2021-07-13 01:43:04 字數 1123 閱讀 6643

在介紹如何獲取機器名&本機ip之前,先了解一下幾個概念

1、hostent 網域名稱結構體

struct  hostent ;

2、gethostname()函式:返回本地主機的標準主機名。

gethostname(

__out_bcount(namelen) char far * name,

in int namelen);

該函式把本地主機名存放入由name引數指定的緩衝區中。返回的主機名是乙個以null結束的字串。主機名的形式取決於windows sockets實現-它可能是乙個簡單的主機名,或者是乙個網域名稱。然而,返回的名字必定可以在gethostbyname()和wsaasyncgethostbyname()中使用。

如果沒有錯誤發生,gethostname()返回0。否則它返回socket_error。應用程式可以通過wsagetlasterror()來得到乙個特定的錯誤**。

3、gethostbyname()返回對應於給定主機名的包含主機名字和位址資訊的hostent結構指標

gethostbyname(

__in const char far * name);

如果沒有錯誤發生,gethostbyname()返回如上所述的乙個指向hostent結構的指標,否則,返回乙個空指標。應用程式可以通過wsagetlasterror()來得到乙個特定的錯誤**。

4、inet_ntoa() :將網路位址轉換成「.」點隔的字串格式

inet_ntoa(

in struct in_addr in);

該函式將乙個用in引數所表示的internet位址結構轉換成以「.」 間隔的諸如「a.b.c.d」的字串形式。請注意inet_ntoa()返回的字串存放在windows套介面實現所分配的記憶體中。應用程式不應假設該記憶體是如何分配的。在同乙個執行緒的下乙個windows套介面呼叫前,資料將保證是有效。

若無錯誤發生,inet_ntoa()返回乙個字元指標。否則的話,返回null。其中的資料應在下乙個windows套介面呼叫前複製出來。

5、重點來了,直接附上**吧

void gethostaddress

6、如果本地ip不唯一呢

void gethostaddress }

}

MFC之獲取本機IP位址

vs2013 按鈕響應 wsadata wsadata if 0 wsastartup makeword 2,2 wsadata 初始化 char szhostname max path 1 gethostname szhostname,max path 得到計算機名 hostent p getho...

獲取本機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位址及其類別

var ip string ipstr string buffer array 1.32 of char i integer wsdata twsadata host phostent begin if wsastartup 2,wsdata 0 then 為程式使用ws2 32.dll初始化 be...