




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网 络 程 序 设 计实验报告 实验名称:Winsock编程接口实验 实验类型: 验 证 型 一、实验目的l 掌握Winsock的启动和初始化;l 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。二、实验设计实验内容:1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip , 能输出和 对应的IP地址列表。2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址。根据实验内容编写程序: 1、对相关域名进行解析,利用gethostbyname()完成解析,用到的结构体为: struct hostentchar FAR*h_name;char FAR* FAR*h_aliases;short h_addrtype;short h_length;char FAR* FAR*h_addr_list; 得到的IP地址列表由h_addr_list存储; 2、利用GetAdaptersInfo()函数获得本地主机的相关信息,通过IP_ADAPTER_INFO结构体返回所需信息。IP_ADAPTER_INFO的定义如下:typedef struct _IP_ADAPTER_INFO struct _IP_ADAPTER_INFO* Next; DWORD ComboIndex; char AdapterNameMAX_ADAPTER_NAME_LENGTH + 4; char DescriptionMAX_ADAPTER_DESCRIPTION_LENGTH + 4; UINT AddressLength; BYTE AddressMAX_ADAPTER_ADDRESS_LENGTH; DWORD Index; UINT Type; UINT DhcpEnabled; PIP_ADDR_STRING CurrentIpAddress; IP_ADDR_STRING IpAddressList; IP_ADDR_STRING GatewayList; IP_ADDR_STRING DhcpServer; BOOL HaveWins; IP_ADDR_STRING PrimaryWinsServer; IP_ADDR_STRING SecondaryWinsServer; time_t LeaseObtained; time_t LeaseExpires; IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;三、实验过程(包含实验结果)1、分析题目,编写程序;2、将编写的程序进行编译、运行,输入题目给定的内容,完成题目要求;结果如下: 第1题: 第2题: 四、讨论与分析 思考题: 1、Winsock初始化的作用:只有调用了WSAStartup()进行初始化之后,应用程序才能调用其他Windows Sockets API函数,实现网络通信; 2、函数原型为:DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, /接受数据的缓冲区 PULONG pOutBufLen / 数据的长度大小); 3、域名解析时出现域名对应多个IP,原因:该域名存在于多个服务器。 五、实验者自评 通过本次实验,我掌握了Winsock的启动和初始化以及gethostname(),gethostbyname(),GetAdaptersInfo()等函数查询的使用,加深了以前对课本知识的认识程度。6、 附录:关键代码(给出适当注释,可读性高) 第1题代码: / GetAllIps.cpp文件/#include ./common/InitSock.h#include #include #include using namespace std;#pragma comment(lib, WS2_32)/ 链接到WS2_32.lib/CInitSock initSock;/ 初始化Winsock库void main()char szMessage256; / 取得本地主机名称/ 初始化WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0) exit(0);/ 通过主机名得到地址信息printf( Get IP::);gets(szMessage);/ 获取主机信息hostent *pHost = :gethostbyname(szMessage);/ 打印出所有IP地址in_addr addr;for(int i = 0; ; i+)char *p = pHost-h_addr_listi;if(p = NULL)break;memcpy(&addr.S_un.S_addr, p, pHost-h_length);char *szIp = :inet_ntoa(addr);printf( 服务器 %s IP地址:%s n ,szMessage, szIp);printf(服务器名字: %s n,pHost-h_name );/:WSACleanup();第2题代码:/ 获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC地址#include #include using namespace std;#include #pragma comment(lib, IPHLPAPI.lib)void main()/ 定义变量IP_ADAPTER_INFO *pAdapterInfo;ULONG ulOutBufLen;DWORD dwRetVal;PIP_ADAPTER_INFO pAdapter;pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO);ulOutBufLen = sizeof(IP_ADAPTER_INFO);/ 第一次获取适配器信息,得到ulOutBufLen的实际大小if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)free(pAdapterInfo);pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen);/ 第二次获取适配器信息,获得了pAdapterInfo信息if(dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)coutGetAdapterInfo Error!dwRetValendl;/ 打印MAC地址信息、子网掩码以及网关pAdapter = pAdapterInfo;while(pAdapter)coutMAC Address: ;for(int i=0; iAddressLength; i+)if(i = (pAdapter-AddressLength - 1)couthexAddressi;elsecouthexAddressi-;coutendl;coutIP 地址:IpAddressList.IpAddress.Stringend
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三国读书汇报课件
- 2025-2030中国幼儿含氟牙膏市场消费前景及销售规模分析报告
- 三分屏课件不显示提纲
- 三减三健知识培训内容课件
- 猎头行业面试题及案例分析
- 小儿静脉留置针课件
- 护工面试实战模拟题库
- 小儿课件教学课件
- 求职必 备:街道面试题目及答案精 编助你顺利面试
- 大班艺术《拾穗者》教学反思
- 2025年成都水务考试题库
- 《医师法》考核试题(附答案)
- 2025年云计算测试题库及答案
- 湛江初一分班考试试题及答案
- 2025年成都东部集团有限公司及下属企业招聘考试笔试试卷【附答案】
- 广东省深圳市2025-2026学年七年级上学期入学考试模拟英语试卷(六套-6卷-原卷)
- 【炼石网络】图解交通运输部《交通运输数据安全风险评估指南》(2025)21141mb
- 消防员心理健康教育课件教学
- 企业园中园管理办法细则
- 华师大版(新)七年级上册数学全册教案(教学设计)及教学反思
- 近几年大学英语四级词汇表(完整珍藏版)
评论
0/150
提交评论