ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:285.68KB ,
资源ID:5800664      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5800664.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LAN管理器的设计与实现 主机信息探测与查询子系统的设计与实现毕业设计说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LAN管理器的设计与实现 主机信息探测与查询子系统的设计与实现毕业设计说明书.docx

1、LAN管理器的设计与实现 主机信息探测与查询子系统的设计与实现 毕业设计说明书单位代码 10 学 号 分 类 号 TP393 密 级 毕业设计说明书LAN管理器的设计与实现主机信息探测与查询子系统的设计与实现 院(系)名称 专业名称 学生姓名 指导教师QQ 997237619 2012年5月14日LAN管理器的设计与实现主机信息探测与查询子系统的设计与实现摘 要目前,局域网已广泛应用于机关、学校、企事业单位等。围绕LAN管理器课程局域网建设任务,基于TCP/IP协议栈,在Windows下用VC编程语言,设计、实现了LAN管理器的主机信息探测与查询子系统。概述了课题的选题背景、课题来源、毕业设计

2、任务及毕业设计说明书的组织结构,说明了主机信息探测与查询子系统的功能需求、性能需求和用户需求,重点介绍了LAN管理器的总体设计及主机信息探测与查询子系统的具体实现环境和主要实现代码。测试结果表明该子系统能够正常工作,实现了预期目的,为LAN管理器的设计和实现打下了基础。关键词:LAN管理器,主机信息,探测与查询,VCDesign and Implementation of LAN Manager Host Detection and Query Subsystem Design and Achieve Author:Xing MingTutor:Sun FeixianAbstractLocal

3、 area networks (LAN) have been widely applied in offices, schools, enterprises, institutions, and etc. Rounding the graduation designing tasks, a host information detection and query sub-system is designed and implemented. The presented sub-system is based on Windows operating system, and it is impl

4、emented by VC programming language. With the research background and sources of the subject introduced, the graduate design tasks and organizational structure are given. Following that, the functional requirements, performance requirements and user requirements of the sub-system are illustrated. And

5、 then, the overall and detailed design methods of the host information detection and query sub-system are also given. Finally, the implementation environment and the main codes of the sub-system are described. Testing results show that the sub-system can work properly. Thus, it lays the foundation f

6、or the design and implementation of LAN management system.Keywords: LAN Management, Host Information, Detection and query, VC1 绪论1.1 选题背景自从计算机问世以来,安全问题就一直存在。特别是随着Internet的迅速扩张和电子商务的兴起,人们发现保护资源和数据的安全,让他免受来自恶意入侵者的威胁是件相当困难的事。提到网络安全,很多人首先想到的是防火墙,防火墙作为一种静态的访问控制类安全产品通常使用包过滤的技术来实现网络的隔离。适当配置的防火墙虽然可以将非预期的访问请

7、求屏蔽在外,但不能检查出经过他的合法流量中是否包含着恶意的入侵代码。随着入侵手段的日益复杂和通用系统不时出现的安全缺陷,预先评估分析网络系统中存在的安全问题,已经成为网络管理员们的重要需求。基于网络的安全扫描主要扫描设定网络内的服务器、路由器、网桥、交换机、访问服务器、防火墙等设备的安全漏洞,并可设定模拟攻击,以测试系统的防御能力。这种技术模拟入侵者可能的攻击行为,从系统外部进行扫描,以探测是否存在可以被入侵者利用的系统安全薄弱之处。针对网络入侵手段日益复杂、操作系统漏洞不断涌现等问题,预先评估网络信息系统存在的安全问题已成为网络管理员的重要需求。如何保障自身网络的安全,其中一个主要的方法就是

8、自查自纠,而在这个过程中,对自己的网络进行扫描成为一种较为快捷、直观、简单的方法。扫描技术基于TCP/IP协议,对各种网络服务,无论是主机或者防火墙、路由器都适用。同时, 扫描可以确认各种配置的正确性,避免遭受不必要的攻击。为了提高扫描的效率和精确度,主机的信息探测就是必不可少的。1.2 课题来源本课题来自河南省教育厅自然科学研究计划项目(编号2010A520048)。1.3 毕设任务及本人贡献围绕LAN管理器研究,采用ARP、Ping技术,设计主机信息的探测与查询方法,并用VC编程实现,同时连接数据库。要求:探测速度尽可能快;既能探测单个目标主机的信息,也能探测某一IP地址区间内主机的信息;

9、具备一定穿透防火墙的能力。具体毕业设计任务如下:(1)根据任务书要求,收集材料,对比分析,完成译文和文献综述;(2)完成开题报告;(3)学习局域网程序设计知识,设计并实现主机信息探测与查询子系统;(4)撰写毕业设计说明书。本人的主要贡献主要有以下几点:(1)完成译文和文献综述;(2)完成了开题报告;(3)实现了LAN管理器的总体设计和数据库设计;(4)测试了主机信息探测与查询子系统; (5)撰写了毕业设计说明书。1.4 毕业设计说明书的组织结构本学位论文包括中英文摘要、目录、绪论、正文、总结、参考文献、致谢、源代码,共八个部分。其中,论文的绪论、正文和总结三部分的组织安排如下:(1) 绪论:首

10、先介绍了课题的研究背景和课题来源,然后介绍了本文的研究内容与主要贡献,最后列出了论文的组织结构。(2) 需求分析:主要介绍了该系统的用户需求、功能需求和性能需求。(3) 系统设计:详细介绍了LAN管理器主机信息探测与查询子系统的基本思想、整体设计和详细设计。(4) 系统实现:给出系统实现的标准测试环境和实现系统的主要代码。(5) 系统测试:在标准测试环境下的测试结果进行分析。(6) 总结:对论文的主要工作进行了总结。2 需求分析2.1 功能需求(1) 探测与查询功能可利用多种技术对主机信息进行探测与查询。(2) 防火墙穿越功能防火墙穿越,即在对方已安装防火墙并且正常运行的情况下探测主机信息,这

11、是主机信息探测与查询系统的核心功能,也是主机信息探测与查询系统必不可少的功能。2.2 性能需求尽可能快的探测到主机信息,既能探测单个目标主机的信息,也能探测某一IP地址区间内主机的信息,具备一定穿透防火墙的能力,同时准确率不低于90%。2.3 用户需求用户需求主要有以下几个方面:(1) 通过简单的操作就能够探测到主机信息,并且有必要的返回信息并记录结果;(2) 在对方打开防火墙禁止Ping的时候,我们Ping不通的时候应该通过一种有效的方式来探测到对方主机信息;(3) 可以同时探测多个主机的信息;(4) 在某一主机的信息发生变更时可以更新出所变更后的信息;(5) 具有数据存储功能。3 系统设计

12、3.1 设计思想通过arp协议,调用arp功能函数,实现主机信息的探测,通过函数的返回值来判断主机的是否存活,并且获取存活主机的mac。然后通过IP层协议获取主机的详细信息(gethostbyaddr),例如:主机名字,地址类型,主机网络地址等;当获取信息之后存入数据库(sql server 2005),于是要用到数据库的存取知识。由于探测主机的范围比较大,所以需要用到多线程的思想。3.2 总体设计基于ARP协议的主机信息探测与查询系统主要包括域名解析和IP地址的转换、ARP请求发送与处理两大模块,各模块的功能简述如下:域名解析及IP地址转换:调用inet_addr将输入的点分十进制数表示的I

13、P地址转换为网络字节顺序的IP地址;获取主机名:调用gethostbyaddr获取存活主机的主机名;ARP请求发送与处理:调用sendARP函数向目标地址发送ARP请求;获取MAC地址,判断ARP返回的MAC地址转换成易读的形式,并将主机信息写入数据库。依据上述理论,具体的功能模块如图3.1所示。图3.1 功能模块3.3 详细设计依据毕业设计任务书要求,自己负责设计的LAN管理器的主机信息与探测流程图如图3.2所示。图3.2 程序探测流程图 4 系统实现4.1 系统实现环境说明操作系统:Windows xp开发工具:Visual studio 6.0 数据库:sql server 20054.

14、2 主要模块的实现(1) 封装CDataClass类首先封装了一个基于CObject类的CDataClass类来操作数据库,有连接数据库,打开数据库记录,添加信息,删除信息,更新信息等功能,代码如下:class CDataClass:CObjectpublic: CDataClass(); bool Delete(CString sql); bool Insert(CString sql); bool Update(CString sql); _RecordsetPtr & Select(CString sql); bool Close(); bool Open(); _RecordsetPt

15、r pRst; CDataClass();private: _ConnectionPtr pConn; / 建立Connection _CommandPtr pCmd; / 建立Command;CDataClass:CDataClass() WaitForSingleObject(hMutex,INFINITE); CoInitialize(NULL); pRst.CreateInstance(_uuidof(Recordset); pConn.CreateInstance(_uuidof(Connection); pCmd.CreateInstance(_uuidof(Command);bo

16、ol CDataClass:Open() HRESULT res=0; try pConn-ConnectionString =Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=LanMana;Data Source=.;/LT-PCSQLEXPRESS res=pConn-Open(,adModeUnknown); pCmd-ActiveConnection=pConn; catch (_com_error e) AfxMessageBox(e.Descriptio

17、n(); return false; return true;_RecordsetPtr & CDataClass:Select(CString sql) try pCmd-CommandText=(LPCTSTR)sql; pRst=pCmd-Execute(NULL,NULL,adCmdText); catch (_com_error e) AfxMessageBox(e.Description(); return pRst;bool CDataClass:Insert(CString sql) try pCmd-CommandText=(LPCTSTR)sql; pCmd-Execute

18、(NULL,NULL,adCmdText); catch (_com_error e) AfxMessageBox(e.Description(); return false; return true;bool CDataClass:Delete(CString sql) try pCmd-CommandText=(LPCTSTR)sql; pCmd-Execute(NULL,NULL,adCmdText); catch (_com_error e) AfxMessageBox(e.Description(); return false; return true;bool CDataClass

19、:Update(CString sql) try pCmd-CommandText=(LPCTSTR)sql; pCmd-Execute(NULL,NULL,adCmdText); catch (_com_error e) AfxMessageBox(e.Description(); return false; return true;bool CDataClass:Close() try pConn-Close(); catch (_com_error e) AfxMessageBox(e.Description(); ReleaseMutex(hMutex); return false;

20、return true;CDataClass:CDataClass() CoUninitialize(); ReleaseMutex(hMutex);(2) 所用的主要成员变量如图4.1所示。图4.1 主要成员变量(3) 初始化函数代码通过初始化函数探测该主机所在IP地址的地址段信息,并初始化列表函数的头标题,代码如下:WSADATA wsadata;CString str;if(WSAStartup(MAKEWORD(2,2),&wsadata)str.Format(不能初始化sock!);MessageBox(LPCTSTR)str);exit(0);char hostname256;ge

21、thostname(hostname,sizeof(hostname);hostent *host=gethostbyname(hostname);char* IP=inet_ntoa(*(in_addr*)host-h_addr_list0);m_IPAddress.Format(%s,IP);int a,b,c;sscanf(IP,%d.%d.%d.%d,&a,&b,&c,&m_Begin);m_IPAddressPre.Format(%d.%d.%d.,a,b,c);m_Pre.Format(%s,(LPCTSTR)m_IPAddressPre);m_Begin=1;UpdateData

22、(false);/隐藏侧边栏OnButtonSorh();/初始化互斥量hMutex=CreateMutex(NULL,false,NULL);LVCOLUMN lvColumn;char HeaderTxt510= 序号,IP地址,电脑名,MAC地址,操作系统;int nWidth5=50,100,100,120,100; for(int i=0;i5;i+) lvColumn.mask = LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH|LVCF_FMT;lvColumn.fmt = LVCFMT_CENTER;lvColumn.iSubItem = i;lvColum

23、n.pszText = HeaderTxti;lvColumn.cx = nWidthi;m_Info.InsertColumn(i,&lvColumn);(4) 探测该局域网内存活的主机的代码检测函数:void CLanManaDlg:OnButtonIndex() / TODO: Add your control notification handler code here /向数据库增加数据 if(m_IsOn=true) UpdateData(true); CDataClass ado; CString sql; if(!ado.Open() return; for (int i=m_

24、Begin;i=m_End;i+) if(i=m_Begin) sql.Format(delete from IPInfo); if(!ado.Delete(sql) return; sql.Format(insert into IPInfo values(%s%d,0,),(LPCTSTR)m_IPAddressPre,i); if(!ado.Insert(sql) return; if(!ado.Close() return; m_Index.SetWindowText(中止); SetTimer(1,2000,NULL); int * span=new int2; span0=m_Beg

25、in; span1=m_End; m_HThread=AfxBeginThread(ExploreHost,span); if(m_HThread=NULL) exit(1); m_IsOn=false; else m_Index.SetWindowText(检测); TerminateThread(m_HThread,-1); KillTimer(1); m_IsOn=true; (5) 线程函数以及探测函数UINT CLanManaDlg:ExploreHost(LPVOID param) int *span=(int *)param; int begin=span0,end=span1;

26、 delete span; while(true) for (int i=begin;i=end;i+=SPAN) int *p=new int2; p0=i; if(i+SPANend) p1=i+SPAN; else p1=end; HANDLE HThread=AfxBeginThread(GetHostInfo,p); if(HThread=NULL) exit(1); Sleep(50000); return 0;UINT CLanManaDlg:GetHostInfo(LPVOID param) int *p=(int *)param; int begin=p0,end=p1; d

27、elete p; BYTE Mac6; CString IP; for (int i=begin;iend) break; IP.Format(%s%d,(LPCTSTR)m_IPAddressPre,i); char pIP16; strcpy(pIP,IP.GetBuffer(16); HRESULT hr = Arp(pIP,Mac); if(hr = 0) CString str; CString strMac(); CString strHostname(); int i; for(i=0;ih_name;/操作数据库 CString sql; CDataClass dao; int res=dao.Open(); if(res=-1) return -1; sql.Format(update IPInfo set hostname=%s,MAC=%s,isonline=1 where IP=%s,(LPCTSTR)strHostname,(LPCTSTR)strMac,(LPCTSTR)IP); if(!dao.Update(sql) return -1; if(!dao.Close() return -1; else CString sql; CDataClass dao; if(!dao.O

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1