一、实验目的
掌握 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 返回。

本次实验详细介绍了Winsock编程接口的使用,包括Socket的初始化、gethostname()获取主机名、gethostbyname()进行域名解析。此外,还通过GetAdaptersInfo()获取并展示了本地主机所有适配器的IP地址、子网掩码、默认网关和MAC地址。实验成功展示了域名如www.163.com和www.swust.edu.cn的解析结果,并提供了关键代码。

1209

被折叠的 条评论
为什么被折叠?



