vc獲取本地IP

2021-09-01 15:33:13 字數 953 閱讀 6873

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

void getlocalip(void)

for (int i = 0; phe->h_addr_list[i] != 0; ++i)

} wsacleanup( ); }}

int main(void)

wsadata wsddata; //這個結構被用來儲存 被wsastartup函式呼叫後返回的 windows sockets資料。它包含winsock.dll執行的資料。

struct hostent *hn;hostent是host entry的縮寫,該結構記錄主機的資訊,包括主機名、別名、位址型別、位址長度和位址列表。之所以主機的位址是乙個列表的形式,原因是當乙個主機有多個網路介面時,自然有多個位址。

char hostname[255] = ;

wsastartup(makeword(2,0),&wsddata);wsastarup,是windows socknds asynchronous的啟動命令、windows下的網路程式設計介面軟體 winsock1 或 winsock2 裡面的乙個命令。

gethostname(hostname, sizeof(hostname));//int pascal far gethostname(char far *name, int namelen);

printf("%s\n",hostname);

hn = gethostbyname(hostname);//gethostbyname()返回對應於給定主機名的包含主機名字和位址資訊的hostent結構指標。結構的宣告與gethostaddr()中一致。

printf("%s\n",inet_ntoa(*(struct in_addr *)hn->h_addr_list[0]));//將乙個ip轉換成乙個網際網路標準點分格式的字串。

獲取本地IP

bool socketuti getlocalipaddr string stripaddr if gethostname myname,80 socket error return false if thishost gethostbyname myname return false memset...

獲取本地IP

本機可能會有多個ip,下面這段程式可以獲得本機ip struct hostent h char host 100 int i gethostname host,100 if h gethostbyname host null printf error s n hstrerror h errno re...

獲取本地IP

方法一 foreach ipaddress ip in dns.gethostentry dns.gethostname addresslist 方法二 iphostentry ipentry dns.gethostbyname dns.gethostname gethostbyname 方法已過時...