获取网卡信息和子网掩码附源程序.docx
上传人:qw****27 上传时间:2024-09-12 格式:DOCX 页数:4 大小:20KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

获取网卡信息和子网掩码附源程序.docx

获取网卡信息和子网掩码附源程序.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

获取网卡信息和子网掩码实验学时:2实验类型:设计实验要求:必修一、实验目的:1、掌握控制台程序设计的基本方法;2、了解在该网络环境下如何利用Winsock获取网卡信息及其实现原理;3、了解在该网络环境下如何利用Winsock获取子网掩码及其实现原理。二、实验内容:利用winsock提供的相关函数进行控制台程序的编制,要求获取计算机网卡信息和子网掩码,并显示在DOS窗口上。三、实验原理、方法和手段使用Winsock进行网络通信程序的设计,要通过本次试验初步了解如何利用Winsock进行控制台程序的编制,为以后自己编制类似的程序打下良好的基础。四、实验组织运行要求注意观察结果,记录并分析编译系统的出错信息提示。五、实验条件Pc机VC++6.0环境六、实验步骤启动VisualC++6.0开发环境从“开始”菜单中选择“程序|MicrosoftVisualStudio6.0|MicrosoftVisualC++6.0”,显示VisualC++6.0开发环境窗口。创建一个项目(1)单击File菜单中的New选项,显示New(新建)对话框。(2)单击Project(项目)标签,在Project选项卡中,选择Win32ConsoleApplication(Win32控制台应用程序向导)。在Location(位置)文本框中指定一个路径,在ProjectName(项目名称)文本框中为项目输入一个名字(例如:lab2),单击OK按钮。(3)依据提示单击下一步按钮,直到最后一步点击完成按钮,完成项目的建立。(4)项目建立好后,点击工程菜单,选择设置,在弹出的新窗口中单击连接(Link)选项卡,在对象/库模块文本框中填入IpHlpAPI.LIB库,点击确定按钮,完成库的添加。3..编写源程序文件参考程序见书p.89(注意理解实现原理)4.建立并运行可执行程序(1)选择菜单命令Build|Buildlab2.exe,建立可执行程序。如果你正确输入了源程序,此时便成功地生成了可执行程序(例如:lab2.exe)。如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build|Buildlab2.exe,建立可执行程序。(2)选择菜单命令Build|Executelab2.exe运行程序,观察屏幕的显示内容。5.观察程序运行结果。七、思考题程序运行通过后请回答以下问题:pAdapter指针变量初值设为空有何作用。GetAdaptersInfo函数有哪些返回值,分别代表什么含义。请解释AdapterAddr地址的打印格式控制信息。DhcpEnabled成员可以存放什么类型的值,可能的取值有哪些,分别代表什么含义。While循环末尾的语句pAdapter=pAdapter->Next;有什么作用,while循环什么情况下会结束。八、实验报告分别记录下以上每个实验内容的结果,并分析结果。在每次实验后,应整理出实验报告,实验报告应包括以下内容:=1\*GB2⑴题目;=2\*GB2⑵程序清单:每个上机程序的完整源程序代码;=3\*GB2⑶运行结果:每个上机程序运行后打印输出的结果;=4\*GB2⑷对运行情况所作的分析,以及本次调试程序所取得的经验。如果程序未能通过,则分析其原因。每次的实验报告在下次上机的时候交。九、其它说明(无)源程序:#include<windows.h>//在相应的LIB文件里加入库文件#include<stdio.h>//在相应的INCLUDE文件中加入头文件//在工程连接里,在对象/库模块文本框中填入IpHlpAPI.LIB库#include<iphlpapi.h>//#pragmacomment(lib,"C:\\ProgramFiles\\MicrosoftPlatformSDK\\Lib\\iphlpapi.lib")intmain(void){PIP_ADAPTER_INFOpAdapterInfo;PIP_ADAPTER_INFOpAdapter=NULL;DWORDdwRetVal=0;pAdapterInfo=(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));ULONGulOutBufLen=sizeof(IP_ADAPTER_INFO);if(GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)==ERROR_BUFFER_OVERFLOW){free(pAdapterInfo);pAdap