




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
贵州大学实验报告学院:计信学院 专业: 信息安全 班级:101姓名学号实验组实验时间指导教师成绩实验项目名称获取计算机IP地址和主机名及MAC地址实验目的1、掌握MFC程序设计的基本方法;2、了解在该网络环境下利用Winsock获取IP地址的方法及实现原理;3、了解在该网络环境下利用Winsock获取计算机名的方法及实现原理。实验原理 要通过本次试验初步了解Winsock程序的编制,并掌握如何利用MFC进行程序设计,为以后自己编制类似的程序打下良好的基础。实验内容 利用winsock提供的相关函数进行MFC程序的编制,要求获取计算机IP地址和主机名,并显示在窗口上。 实验环境PC机 V C+6.0 环境实验步骤1. 启动Visual C+6.0开发环境从“开始”菜单中选择“程序| Microsoft Visual Studio 6.0 | Microsoft Visual C+ 6.0”,显示Visual C+6.0开发环境窗口。2. 创建一个项目(1)单击File菜单中的New选项,显示New(新建)对话框。(2)单击Project(项目)标签,在Project选项卡中,选择MFC AppWizard(exe)(MFC 应用程序向导)。在Location(位置)文本框中指定一个路径,在Project Name(项目名称)文本框中为项目输入一个名字(例如:Winsock_getIP),单击OK按钮。(3)在弹出的MFC AppWizard-Step1of 4对话框中选择Dialog Based(对话框基础)单选项,然后单击下一步按钮。(4)在MFC AppWizard-Step2 of 4对话框中注意勾选windows sockets支持复选框,在标题对话框中输入想显示的窗口标题(例如:获取主机名和IP地址),然后单击下一步按钮。(5)其余步骤选择默认值。 (6)最后在MFC AppWizard-Step4 of 4对话框中单击完成按钮,完成项目的建立。实验结果主要实现函数程序清单:/获得主机名int CWinsock_getIPDlg:GetLocalHostName(CString &sHostName) char szHostName256; int nRetCode; nRetCode = gethostname(szHostName,sizeof(szHostName); if(nRetCode != 0) return WSAGetLastError(); sHostName = szHostName; return 0;获得IP地址int CWinsock_getIPDlg:GetIPAddress(const CString &sHostName, CString &sIPAddress) struct hostent FAR* lpHostEnt = gethostbyname(sHostName); if(lpHostEnt = NULL) return WSAGetLastError(); LPSTR lpAddr = lpHostEnt-h_addr_list0; if(lpAddr) struct in_addr inAddr; memmove(&inAddr,lpAddr,4); sIPAddress = inet_ntoa(inAddr); if(sIPAddress.IsEmpty() return 0; return 0;获得MAC地址void CWinsock_getIPDlg:GetMAC(CString &sMAC)PIP_ADAPTER_INFO pAdapterInfo;PIP_ADAPTER_INFO pAdapter=NULL;DWORD dwRetVal;pAdapterInfo=(IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO);ULONG ulOutBufLen=sizeof(IP_ADAPTER_INFO);if (GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)=ERROR_BUFFER_OVERFLOW)free(pAdapterInfo);pAdapterInfo=(IP_ADAPTER_INFO *)malloc(ulOutBufLen);if(dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)=NO_ERROR)pAdapter=pAdapterInfo;if(pAdapter)sMAC.Format(%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x,pAdapter-Address0,pAdapter-Address1,pAdapter-Address2,pAdapter-Address3,pAdapter-Address4,pAdapter-Address5);对确定键的实现void CWinsock_getIPDlg:OnOK() / TODO: Add extra validation here int nRetCode; nRetCode=GetLocalHostName(m_sHostName); nRetCode=GetIPAddress(m_sHostName,m_sIPAddress);GetMAC(m_sMAC); UpdateData(FALSE);void CWinsock_getIPDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();点击确定后:点击取消。实验总结1.函数GetLocalHostName(Cstring& sHostName)中的形参是出口参数还是入口参数?答:是入口参数。2.函数GetIPAddress(const Cstring& sHostName,Cstring& sIPAddress)中的形参是出口参数还是入口参数?答:是入口参数。3.在上面程序中我们并没有让确定按钮发挥作用,看看能否将程序改为不要一运行就能在窗口上看到结果,而需要点击确定按钮后才看到结果,请说明如何做?答:进入其成员函数,添加如下语句:int nRetCode;nRetCode=GetLocalHostName(m_sHos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行业廉洁教育测试题及答案
- 煤矿后勤专业试题及答案
- 铁路专业试题及答案
- 烹饪专业考证试题及答案
- 航空服务专业试题及答案
- 河北省衡水市桃城区2025-2026学年高二暑假开学考试语文试卷(含答案)
- 《烹饪原料初加工工艺》项目五配菜
- 小学数学专业知识考试试题及答案
- 质量专业试题及答案
- 马克笔建筑方案设计
- 工作票和操作票样本
- 《高频电子线路》课后答案-曾兴雯版高等教育出版社
- 《舞蹈艺术赏析》课件
- PLC项目实操练习题
- 《国有企业经营者薪酬激励研究(论文)9500字》
- 建设工地疫情防控24小时值班表
- 轻型门刚设计中风荷体型系数取值的适用标准讨论
- 2022年同等学力人员申请硕士学位日语水平统一考试真题
- 海上风电智能运维行业分析报告 2022年海上风电智能运维行业发展前景及规模分析
- 生态环境监测机构评审补充要求培训试卷(答案)
- DBJ51∕T 153-2020 四川省附着式脚手架安全技术标准
评论
0/150
提交评论