獲取本地IP

2021-05-23 12:43:23 字數 695 閱讀 1728

本機可能會有多個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));

return;

printf("default ip: %s/n", inet_ntoa (*((struct in_addr *)h->h_addr)));

for (i = 0; i< h->h_length / sizeof(int); i++) {

printf("ip %d : %s/n", i+1, inet_ntoa (*((struct in_addr *)h->h_addr_list[i])));

需要注意的是,h->h_addr實際上就是h->h_addr_list[0],是為了向前相容而保留的。

dns操作時的錯誤處理與普通程式不同,gethostbyname通過設定h_errno代表出錯號,對應的錯誤函式有hstrerror()和herror(),分別對應於strerror()和perror()這兩個普通的錯誤函式。

獲取本地IP

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

獲取本地IP

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

vc獲取本地IP

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 這個結構被用來儲...