一种获取本地IP的方法

第一步:

struct addrinfo hints;
struct addrinfo *res=NULL;

memset(&hints,0,sizeof(hints));
hints.ai_family=AF_INET;
hints.ai_socktype=SOCK_STREAM;
hints.ai_protocol=IPPROTO_TCP;
getaddrinfo("www.qq.com", "80", &hints,&res);


第二步:

struct sockaddr addr;
int sock;

sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
connect(sock,res->ai_addr,res->ai_addrlen);

 

第三步:

int len=sizeof(addr);
char ip[64];

getsockname(sock,(struct sockaddr*)&addr,&len);
getnameinfo((struct sockaddr *)&addr,len,ip,sizeof(ip),NULL,0,NI_NUMERICHOST);

 

你可能感兴趣的:(网络技术)