利用winsock获取主机名和ip地址其实很简单,主要使用的函数就是gethostname和gethostbyname.
首先,使用gethostname(char *name,int namelen)获取主机名,name为保存主机名的buf,namelen为制定的buf的长度。然后使用gethostbyname(char* addr)获取主机ip,该函数的返回值是hostent指针。hostent结构体如下:
struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
通过遍历h_addr_list获取主机的ip地址。