一、实验目的
掌握 Winsock 的启动和初始化;掌握 gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用;
编写程序能同时实现对多个域名的解析;
编写程序获取并输出本地主机的所有适配器的 IP 地址,子网掩码,默认网关,MAC地址。
二、实验设计
该实验分为两个部分:编写程序能同时实现对多个域名的解析和编写程序获取并输出本地主机的所有适配器的 IP 地址,子网掩码,默认网关,MAC 地址。1. 编写程序能同时实现对多个域名的解析。
步骤:
(1)完成Socket的启动和初始化;
(2)使用gethostname()获取主机名称;
(3)使用gethostbyname()进行域名解析;
2. 编写程序获取并输出本地主机的所有适配器的 IP 地址,子网掩码,默认网关,MAC 地址。
步骤:
(1)第1次调用GetAdaptersInfo(),获取返回结果的大小到ulOutBufLen中;
(2)第2次调用GetAdaptersInfo(),获取本地网络信息到结构体pAdapterInfo中;
(3)从pAdapterInfo 获取并显示本地网络信息;
(4)释放资源。
3. 函数原型
(1)gethostname()
函数原型为:
int gethostname(char *name, int namelen);
name 是一个指向将要存放主机名的缓冲区指针。
namelen 用于指定缓冲区的长度。
该函数把本地主机名存入由 name 参数指定的缓冲区中,返回的主机名是一个以NULL 结束的字符串。
(2)gethostbyname()
函数原型为:
struct hostent *gethostbyname(const char *name);
name 为指向主机名的指针,它一般由函数 gethostname 返回。
函数返回对应于给定主机名的包含主机名字和地址信息的 host