LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書

上傳人:仙*** 文檔編號:27886597 上傳時間:2021-08-21 格式:DOC 頁數(shù):47 大?。?12.02KB
收藏 版權申訴 舉報 下載
LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書_第1頁
第1頁 / 共47頁
LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書_第2頁
第2頁 / 共47頁
LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書_第3頁
第3頁 / 共47頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書》由會員分享,可在線閱讀,更多相關《LAN管理器的設計與實現(xiàn)主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn)畢業(yè)設計說明書(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 單位代碼 10 學 號 分 類 號 TP393 密 級 畢業(yè)設計說明書 LAN管理器的設計與實現(xiàn) —主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn) 院(系)名稱 專業(yè)名稱 學生姓名 指導教師 2012年5月14日 LAN管理器的設計與實現(xiàn) ——主機信息探測與查詢子系統(tǒng)的設計與實現(xiàn) 摘 要 目前,局域網(wǎng)已廣泛應用于機關、學校、企事業(yè)單位等。圍繞LAN管理器課程局域網(wǎng)建設任務,基于TCP/IP協(xié)議棧,在

2、Windows下用VC編程語言,設計、實現(xiàn)了LAN管理器的主機信息探測與查詢子系統(tǒng)。概述了課題的選題背景、課題來源、畢業(yè)設計任務及畢業(yè)設計說明書的組織結構,說明了主機信息探測與查詢子系統(tǒng)的功能需求、性能需求和用戶需求,重點介紹了LAN管理器的總體設計及主機信息探測與查詢子系統(tǒng)的具體實現(xiàn)環(huán)境和主要實現(xiàn)代碼。測試結果表明該子系統(tǒng)能夠正常工作,實現(xiàn)了預期目的,為LAN管理器的設計和實現(xiàn)打下了基礎。 關鍵詞:LAN管理器,主機信息,探測與查詢,VC 黃河科技學院畢業(yè)設計說明書 第 II 頁 Design and Implementati

3、on of LAN Manager —— Host Detection and Query Subsystem Design and Achieve Author:Xing Ming Tutor:Sun Feixian Abstract Local area networks (LAN) have been widely applied in offices, schools, enterprises, institutions, and etc. Rounding the graduation designing tasks, a host information detect

4、ion and query sub-system is designed and implemented. The presented sub-system is based on Windows operating system, and it is implemented by VC programming language. With the research background and sources of the subject introduced, the graduate design tasks and organizational structure are given.

5、 Following that, the functional requirements, performance requirements and user requirements of the sub-system are illustrated. And 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 mai

6、n codes of the sub-system are described. Testing results show that the sub-system can work properly. Thus, it lays the foundation for the design and implementation of LAN management system. Keywords: LAN Management, Host Information, Detection and query, VC 黃河科技學院畢業(yè)設計說明書 第 43 頁

7、 目 錄 1 緒論 1 1.1 選題背景 1 1.2 課題來源 1 1.3 畢設任務及本人貢獻 1 1.4 畢業(yè)設計說明書的組織結構 2 2 需求分析 3 2.1 功能需求 3 2.2 性能需求 3 2.3 用戶需求 3 3 系統(tǒng)設計 4 3.1 設計思想 4 3.2 總體設計 4 3.3 詳細設計 5 4 系統(tǒng)實現(xiàn) 6 4.1 系統(tǒng)實現(xiàn)環(huán)境說明 6 4.2 主要模塊的實現(xiàn) 6 5 系統(tǒng)測試 17 4.1 測試目的 17 4.2 測試方法 17 4.3 測試用例與測試結果 17 4.4 測試結論 22

8、 結論 23 致謝 24 參考文獻 25 附錄 26 源代碼 26 1 緒論 1.1 選題背景 自從計算機問世以來,安全問題就一直存在。特別是隨著Internet的迅速擴張和電子商務的興起,人們發(fā)現(xiàn)保護資源和數(shù)據(jù)的安全,讓他免受來自惡意入侵者的威脅是件相當困難的事。提到網(wǎng)絡安全,很多人首先想到的是防火墻,防火墻作為一種靜態(tài)的訪問控制類安全產(chǎn)品通常使用包過濾的技術來實現(xiàn)網(wǎng)絡的隔離。適當配置的防火墻雖然可以將非預期的訪問請求屏蔽在外,但不能檢查出經(jīng)過他的合法流量中是否包含著惡意的入侵代碼。 隨著入侵手段的日益復雜和通用系統(tǒng)不時出現(xiàn)的安全缺陷,預先評估分析網(wǎng)絡系統(tǒng)中存在的

9、安全問題,已經(jīng)成為網(wǎng)絡管理員們的重要需求。基于網(wǎng)絡的安全掃描主要掃描設定網(wǎng)絡內的服務器、路由器、網(wǎng)橋、交換機、訪問服務器、防火墻等設備的安全漏洞,并可設定模擬攻擊,以測試系統(tǒng)的防御能力。這種技術模擬入侵者可能的攻擊行為,從系統(tǒng)外部進行掃描,以探測是否存在可以被入侵者利用的系統(tǒng)安全薄弱之處。針對網(wǎng)絡入侵手段日益復雜、操作系統(tǒng)漏洞不斷涌現(xiàn)等問題,預先評估網(wǎng)絡信息系統(tǒng)存在的安全問題已成為網(wǎng)絡管理員的重要需求。如何保障自身網(wǎng)絡的安全,其中一個主要的方法就是自查自糾,而在這個過程中,對自己的網(wǎng)絡進行掃描成為一種較為快捷、直觀、簡單的方法。掃描技術基于TCP/IP協(xié)議,對各種網(wǎng)絡服務,無論是主機或者防火墻

10、、路由器都適用。同時, 掃描可以確認各種配置的正確性,避免遭受不必要的攻擊。為了提高掃描的效率和精確度,主機的信息探測就是必不可少的?!? 1.2 課題來源 本課題來自河南省教育廳自然科學研究計劃項目(編號2010A520048)。 1.3 畢設任務及本人貢獻 圍繞LAN管理器研究,采用ARP、Ping技術,設計主機信息的探測與查詢方法,并用VC編程實現(xiàn),同時連接數(shù)據(jù)庫。要求:探測速度盡可能快;既能探測單個目標主機的信息,也能探測某一IP地址區(qū)間內主機的信息;具備一定穿透防火墻的能力。 具體畢業(yè)設計任務如下: (1)根據(jù)任務書要求,收集材料,對比分析,完成譯文和文獻綜述; (2

11、)完成開題報告; (3)學習局域網(wǎng)程序設計知識,設計并實現(xiàn)主機信息探測與查詢子系統(tǒng); (4)撰寫畢業(yè)設計說明書。 本人的主要貢獻主要有以下幾點: (1)完成譯文和文獻綜述; (2)完成了開題報告; (3)實現(xiàn)了LAN管理器的總體設計和數(shù)據(jù)庫設計; (4)測試了主機信息探測與查詢子系統(tǒng); (5)撰寫了畢業(yè)設計說明書。 1.4 畢業(yè)設計說明書的組織結構 本學位論文包括中英文摘要、目錄、緒論、正文、總結、參考文獻、致謝、源代碼,共八個部分。其中,論文的緒論、正文和總結三部分的組織安排如下: (1) 緒論:首先介紹了課題的研究背景和課題來源,然后介紹了本文的研究內容與主要貢

12、獻,最后列出了論文的組織結構。 (2) 需求分析:主要介紹了該系統(tǒng)的用戶需求、功能需求和性能需求。 (3) 系統(tǒng)設計:詳細介紹了LAN管理器主機信息探測與查詢子系統(tǒng)的基本思想、整體設計和詳細設計。 (4) 系統(tǒng)實現(xiàn):給出系統(tǒng)實現(xiàn)的標準測試環(huán)境和實現(xiàn)系統(tǒng)的主要代碼。 (5) 系統(tǒng)測試:在標準測試環(huán)境下的測試結果進行分析。 (6) 總結:對論文的主要工作進行了總結。 2 需求分析 2.1 功能需求 (1) 探測與查詢功能 可利用多種技術對主機信息進行探測與查詢。 (2) 防火墻穿越功能 防火墻穿越,即在對方已安裝防火墻并且正常運行的情況下

13、探測主機信息,這是主機信息探測與查詢系統(tǒng)的核心功能,也是主機信息探測與查詢系統(tǒng)必不可少的功能。 2.2 性能需求 盡可能快的探測到主機信息,既能探測單個目標主機的信息,也能探測某一IP地址區(qū)間內主機的信息,具備一定穿透防火墻的能力,同時準確率不低于90%。 2.3 用戶需求 用戶需求主要有以下幾個方面: (1) 通過簡單的操作就能夠探測到主機信息,并且有必要的返回信息并記錄結果; (2) 在對方打開防火墻禁止Ping的時候,我們Ping不通的時候應該通過一種有效的方式來探測到對方主機信息; (3) 可以同時探測多個主機的信息; (4) 在某一主機的信息發(fā)生變更時可以

14、更新出所變更后的信息; (5) 具有數(shù)據(jù)存儲功能。 3 系統(tǒng)設計 3.1 設計思想 通過arp協(xié)議,調用arp功能函數(shù),實現(xiàn)主機信息的探測,通過函數(shù)的返回值來判斷主機的是否存活,并且獲取存活主機的mac。然后通過IP層協(xié)議獲取主機的詳細信息(gethostbyaddr),例如:主機名字,地址類型,主機網(wǎng)絡地址等;當獲取信息之后存入數(shù)據(jù)庫(sql server 2005),于是要用到數(shù)據(jù)庫的存取知識。由于探測主機的范圍比較大,所以需要用到多線程的思想。 3.2 總體設計 基于ARP協(xié)議的主機信息探測與查詢系統(tǒng)主要包括域名解析和IP地址的轉換、ARP請求發(fā)送與處

15、理兩大模塊,各模塊的功能簡述如下: 域名解析及IP地址轉換:調用inet_addr將輸入的點分十進制數(shù)表示的IP地址轉換為網(wǎng)絡字節(jié)順序的IP地址;獲取主機名:調用gethostbyaddr獲取存活主機的主機名; ARP請求發(fā)送與處理:調用sendARP函數(shù)向目標地址發(fā)送ARP請求;獲取MAC地址,判斷ARP返回的MAC地址轉換成易讀的形式,并將主機信息寫入數(shù)據(jù)庫。 依據(jù)上述理論,具體的功能模塊如圖3.1所示。 圖3.1 功能模塊 3.3 詳細設計 依據(jù)畢業(yè)設計任務書要求,自己負責設計的LAN管理器的主機信息與探測流程圖如圖3.2所示。 圖3.2 程序探測流程圖 4

16、 系統(tǒng)實現(xiàn) 4.1 系統(tǒng)實現(xiàn)環(huán)境說明 操作系統(tǒng):Windows xp 開發(fā)工具:Visual studio 6.0 數(shù)據(jù)庫:sql server 2005 4.2 主要模塊的實現(xiàn) (1) 封裝CDataClass類 首先封裝了一個基于CObject類的CDataClass類來操作數(shù)據(jù)庫,有連接數(shù)據(jù)庫,打開數(shù)據(jù)庫記錄,添加信息,刪除信息,更新信息等功能,代碼如下: class CDataClass:CObject { public: CDataClass(); bool Delete(CString sql); bool Insert(CString sq

17、l); bool Update(CString sql); _RecordsetPtr & Select(CString sql); bool Close(); bool Open(); _RecordsetPtr pRst; ~CDataClass(); private: _ConnectionPtr pConn; // 建立Connection _CommandPtr pCmd; // 建立Command }; CDataClass::CDataClass() { WaitForSingleObject(h

18、Mutex,INFINITE); CoInitialize(NULL); pRst.CreateInstance(__uuidof(Recordset)); pConn.CreateInstance(__uuidof(Connection)); pCmd.CreateInstance(__uuidof(Command)); } bool CDataClass::Open() { HRESULT res=0; try { pConn->ConnectionString ="Provider=SQLOLEDB.1; Integrated Security=SS

19、PI; Persist Security Info=False; Initial Catalog=LanMana; Data Source=.";//LT-PC\\SQLEXPRESS res=pConn->Open("","","",adModeUnknown); pCmd->ActiveConnection=pConn; } catch (_com_error e) { AfxMessageBox(e.Description()); return false; } return true; } _RecordsetPtr & CDa

20、taClass::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; p

21、Cmd->Execute(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) {

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

23、 } bool CDataClass::Close() { try { pConn->Close(); } catch (_com_error e) { AfxMessageBox(e.Description()); ReleaseMutex(hMutex); return false; } return true; } CDataClass::~CDataClass() { CoUninitialize(); ReleaseMutex(hMutex); } (2) 所用的主要成員變量如圖4.1所示。 圖4.1 主要

24、成員變量 (3) 初始化函數(shù)代碼 通過初始化函數(shù)探測該主機所在IP地址的地址段信息,并初始化列表函數(shù)的頭標題,代碼如下: WSADATA wsadata; CString str; if(WSAStartup(MAKEWORD(2,2),&wsadata)) { str.Format("不能初始化sock!"); MessageBox((LPCTSTR)str); exit(0); } char hostname[256]; gethostname(hostname,sizeof(hostname)); hostent *host=gethostbyname(h

25、ostname); char* IP=inet_ntoa(*(in_addr*)host->h_addr_list[0]); 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(false); //隱藏側邊欄 OnButtonSorh(); //

26、初始化互斥量 hMutex=CreateMutex(NULL,false,NULL); LVCOLUMN lvColumn; char HeaderTxt[5][10]= {"序號","IP地址","電腦名","MAC地址","操作系統(tǒng)"}; int nWidth[5]={50,100,100,120,100}; for(int i=0;i<5;i++) { lvColumn.mask = LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH|LVCF_FMT; lvColumn.fmt = LVCFMT_CENTER; lvColumn.iSubItem

27、= i; lvColumn.pszText = HeaderTxt[i]; lvColumn.cx = nWidth[i]; m_Info.InsertColumn(i,&lvColumn); } (4) 探測該局域網(wǎng)內存活的主機的代碼 檢測函數(shù): void CLanManaDlg::OnButtonIndex() { // TODO: Add your control notification handler code here //向數(shù)據(jù)庫增加數(shù)據(jù) if(m_IsOn==true) { UpdateData(true); CDataClass

28、 ado; CString sql; if(!ado.Open()) return; for (int i=m_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.Inse

29、rt(sql)) return; } if(!ado.Close()) return; m_Index.SetWindowText("中止"); SetTimer(1,2000,NULL); int * span=new int[2]; span[0]=m_Begin; span[1]=m_End; m_HThread=AfxBeginThread(ExploreHost,span); if(m_HThread==NULL) exit(1); m_IsOn=false; } else { m

30、_Index.SetWindowText("檢測"); TerminateThread(m_HThread,-1); KillTimer(1); m_IsOn=true; } } (5) 線程函數(shù)以及探測函數(shù) UINT CLanManaDlg::ExploreHost(LPVOID param) { int *span=(int *)param; int begin=span[0],end=span[1]; delete span; while(true) { for (int i=begin;i<=end;i+=SPAN) {

31、 int *p=new int[2]; p[0]=i; if(i+SPAN

32、aram; int begin=p[0],end=p[1]; delete p; BYTE Mac[6]; CString IP; for (int i=begin;iend) break; IP.Format("%s%d",(LPCTSTR)m_IPAddressPre,i); char pIP[16]; strcpy(pIP,IP.GetBuffer(16)); HRESULT hr = Arp(pIP,Mac); if(hr == 0) { CString s

33、tr; CString strMac(""); CString strHostname(""); int i; for(i=0;i<=5;i++) { if(i==5) { str.Format("%02X",Mac[i]); } else str.Format("%02X:",Mac[i]); strMac += str; } IPAddr ipAddr; char buf[256]; ipAddr = inet_addr ((LPCTST

34、R)IP); ZeroMemory(buf,256); hostent * remoteHostent = gethostbyaddr( (char*)&ipAddr,sizeof( in_addr ), AF_INET ); if ( remoteHostent ) strHostname = remoteHostent->h_name; //操作數(shù)據(jù)庫 CString sql; CDataClass dao; int res=dao.Open(); if(res==-1) return -1; sq

35、l.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.Open()) return -1; sql.Format("

36、update IPInfo set isonline=0 where IP=%s",(LPCTSTR)IP); if(!dao.Update(sql)) return -1; if(!dao.Close()) return -1; } } return 0; } (6) 精確查詢、模糊查詢的代碼 void CLanManaDlg::OnButtonQuary() { // TODO: Add your control notification handler code here UpdateData(true); if

37、 (m_IsAuto==true) { KillTimer(1); m_Refresh.SetWindowText("繼續(xù)"); m_IsAuto=false; } int ID1,ID2; CString str1,str2; ID1=GetCheckedRadioButton(IDC_RADIO_EXACT,IDC_RADIO_DIM); ID2=GetCheckedRadioButton(IDC_RADIO_HOSTNAME,IDC_RADIO_MAC); ((CButton*)GetDlgItem(ID1))->GetWindowText(

38、str1); ((CButton*)GetDlgItem(ID2))->GetWindowText(str2); if(!str1.Compare("精確")) { if (!str2.Compare("主機名")) { CString sql; sql.Format("select * from IPInfo where hostname=%s and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else if (!str2.Compare("IP地址")) { CString

39、 sql; sql.Format("select * from IPInfo where IP=%s and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else { CString sql; sql.Format("select * from IPInfo where MAC=%s and isonline=1",(LPCTSTR)m_Text); GetData(sql); } } else { if (!str2.Compare("主機名")) { CStr

40、ing sql; sql.Format("select * from IPInfo where hostname like %%%s%% and isonline=1",(LPCTSTR)m_Text); GetData(sql); } else if (!str2.Compare("IP地址")) { CString sql; sql.Format("select * from IPInfo where IP like %%%s%% and isonline=1",(LPCTSTR)m_Text); GetData(sql); } e

41、lse { CString sql; sql.Format("select * from IPInfo where MAC like %%%s%% and isonline=1",(LPCTSTR)m_Text); GetData(sql); } } } (7) 數(shù)據(jù)顯示函數(shù) void CLanManaDlg::GetData(CString sql) { //操作數(shù)據(jù)庫 _RecordsetPtr pRst(__uuidof(Recordset)); CDataClass dao; dao.Open(); pRst=dao

42、.Select(sql); if(pRst==NULL) return; m_Info.DeleteAllItems(); int ID=0; try{ while (!pRst->adoEOF) { CString num; num.Format("%d",ID+1); CString IP=(LPCTSTR)(_bstr_t)pRst->GetCollect("IP"),Hostname=(LPCTSTR)(_bstr_t)pRst->GetCollect("hostname"),MAC=(LPCTSTR)(_bstr_t)pR

43、st->GetCollect("MAC"); int IsOnline=(long)pRst->GetCollect("isonline"); CString OS=(LPCTSTR)(_bstr_t)pRst->GetCollect("OS"); m_Info.InsertItem(ID,(LPCTSTR)num); m_Info.SetItemText(ID,1,(LPCTSTR)IP); m_Info.SetItemText(ID,2,(LPCTSTR)Hostname); m_Info.SetItemText(ID,3,(LPCTSTR)

44、MAC); m_Info.SetItemText(ID,4,(LPCTSTR)OS); ID++; pRst->MoveNext(); } pRst->Close(); dao.Close(); } catch (_com_error e) { MessageBox(e.Description()); } } (8) 定時刷新 void CLanManaDlg::OnTimer(UINT nIDEvent) { CString sql("select * from IPInfo where isonline=1")

45、; switch(nIDEvent) { case 1: GetData(sql); break; case 2: break; default: ; } CDialog::OnTimer(nIDEvent); } (9) 搜索區(qū)域的顯示與隱藏 void CLanManaDlg::OnButtonSorh() { static CRect RectLarge(0,0,0,0),RectSmall(0,0,0,0); if(RectLarge.IsRectNull()) { GetWindowRect(Rect

46、Large); RectSmall=RectLarge; RectSmall.right-=200; } if(m_IsShow) { SetWindowPos(NULL,RectLarge.left,RectLarge.right,RectLarge.Width(),RectLarge.Height(),SWP_NOZORDER|SWP_NOMOVE); m_IsShow=false; } else { SetWindowPos(NULL,RectSmall.left,RectSmall.right,RectSmall.Width(),Rec

47、tSmall.Height(),SWP_NOZORDER|SWP_NOMOVE); m_IsShow=true; } } 5 系統(tǒng)測試 5.1 測試目的 測試所做程序能否按照按照要求完成探測任務,是否能夠快而準確的得到結果,能否滿足用戶的需求。 5.2 測試方法 在局域網(wǎng)信息探測與查詢系統(tǒng)的開發(fā)環(huán)境下進行模擬測試,并組建一個小型的局域網(wǎng)來驗證。 5.3 測試用例與測試結果 主界面如圖5.1所示。 圖5.1 程序界面 點擊檢測之后的結果如圖5.2所示。 圖5.2 程序界面 點擊”檢測”按鈕后,該按鈕會改變?yōu)椤爸兄埂卑粹o,在檢測過程中如點擊

48、“中止”按鈕,則會中止該次檢測。 縮小探測范圍所探測到的結果如圖5.3所示。 圖5.3 程序界面 若IP網(wǎng)段有所變化,可以點擊“刷新”按鈕,可以探測出新的網(wǎng)段。 刷新之前的界面如圖5.4所示。 圖5.4 程序界面 刷新之后的界面如圖5.5所示。 圖5.5 程序界面 如果在探測過程中有新的主機打開,同樣可以點擊“刷新”按鈕,便可以將新的主機信息顯示出來。 刷新之前的界面如圖5.6所示。 圖5.6 程序界面 刷新之后的界面如圖5.7所示。 圖5.7 程序界面 精確、模糊查詢界面如圖5.8所示。 圖5.8 程序界面 在該界面,可以通過主機

49、名、IP地址、MAC地址分別進行精確和模糊的查詢。 精確、模糊查詢的事例如圖5.9、5.10所示。 圖5.9 程序界面 圖5.10 程序界面 5.4 測試結論 LAN管理器主機信息探測與查詢子系統(tǒng)能夠較好的實現(xiàn)主機信息的探測與查詢任務,并且在其他主機防火墻開啟的情況下依然可以探測到有效地信息,所顯示的信息也比較準確,并且精確和模糊查詢功能也能運行正常,能夠在較短的時間內完成任務。所探測到的主機相關信息,可以同時更新到sql server數(shù)據(jù)庫中,做到了對探測結果的有效保存。LAN管理器主機信息探測與查詢子系統(tǒng)在功能方面,完成了探測與查詢功能和防火墻穿越功能,在性能方面,能夠

50、在較短的時間內完成對單個或多個主機的信息探測,準確率也不低于90%,在用戶方面,做到了操作簡單、界面簡潔、及時更新、數(shù)據(jù)存儲等功能。LAN管理器主機信息探測與查詢子系統(tǒng)基本完成了預期的目標。 結論 通過這次的局域網(wǎng)信息探測與查詢系統(tǒng)的設計,讓我受益良多。這是一次綜合網(wǎng)絡、數(shù)據(jù)庫和VC編程的設計過程。我了解和掌握了網(wǎng)絡的一些特性,并且能夠進行數(shù)據(jù)庫的設計和使用VC進行相關軟件的編程,同時培養(yǎng)了正確的設計思想和分析問題解決問題的能力,特別是整體設計和各功能模塊的詳細設計能力,以及解決實際碰到困難解決困難的能力,學到了很多知識。這位我們將來的發(fā)展提供了更多的機會。經(jīng)過這次畢業(yè)

51、設計,我深深地體會到嚴謹、認真、仔細、有耐心是一個網(wǎng)絡工程設計人員必須具備的素質。 主機信息探測與查詢系統(tǒng)的工作分為四個步驟:獲取網(wǎng)段、確定范圍、開始查詢、得出結果。隨著入侵手段的日益復雜和通用系統(tǒng)不時出現(xiàn)的安全缺陷,預先評估分析網(wǎng)絡系統(tǒng)中存在的安全問題,已經(jīng)成為網(wǎng)絡管理員們的重要需求?;诰W(wǎng)絡的安全掃描主要掃描設定網(wǎng)絡內的服務器、路由器、網(wǎng)橋、交換機、訪問服務器、防火墻等設備的安全漏洞,并可設定模擬攻擊,以測試系統(tǒng)的防御能力。這種技術模擬入侵者可能的攻擊行為,從系統(tǒng)外部進行掃描,以探測是否存在可以被入侵者利用的系統(tǒng)安全薄弱之處。主機信息探測與查詢系統(tǒng)也就可以來作為一個借鑒,用來研究和模擬入

52、侵者的行為,對我們以后的網(wǎng)路安全也能夠提供和一些保障。 由于水平有限及所需要學校的知識無限,在設計中難免有不少錯誤和不足之處,還請老師們批評指正。 致謝 在此向尊敬的導師孫飛顯老師致以真誠的謝意和敬意,感謝導師對我學習上孜孜不倦的教誨和生活上無微不至的關懷。導師淵博的知識、創(chuàng)新的思維、嚴于律己寬以待人的品質影響著我,教育著我,不僅開闊了我的思路,增長了我的學識,也使我在今后的學習、工作、生活中受益匪淺。衷心祝愿導師身體健康,萬事如意。 感謝師兄對我工作的幫助,在我論文工作最無助的時候,支持我并和我一起調試程序,使我在比較短的時間內解決了面臨的困難,能夠認識你們是我人

53、生的一筆財富。 感謝我的家人在我求學期間對我無私的幫助和支持。 感謝抽空參與評審我論文的老師。 參考文獻 [1] 肖書成.Ad hoc網(wǎng)絡及其路由性能研究.重慶:重慶郵電學院學報,2004. [2] Basavaraj.無線網(wǎng)絡

54、中的IP.北京:人民郵電出版社,2004. [3] Samir RD.Charles EE.Elizabeth M R Performance comparison of two on-demand routing protocols for Ad Hoc networks 2001,5:21~24. [4] 蔡濤等.無線通信原理與應用[M].北京:電子工業(yè)出版社,2006. [5] C K Toh Ad Hoc Mobile Wireless Networks:Protocols and Systems2002. [6] 于

55、斌,孫斌,溫暖等.NS2與網(wǎng)絡模擬.北京:人民郵電出版社.2008. [7] 徐雷鳴,龐博,趙耀.NS與網(wǎng)絡模擬.北京:人民郵電出版社.2008. [8] 鄭少仁,王海濤,趙志峰.Ad Hoc網(wǎng)絡技術2005 , 1:12~15. [9] (美)斯托林斯,無線通信與網(wǎng)絡.北京:清華人學出版社,2005. [10] 林軍,謝維波.一種基于AODV協(xié)議的改進協(xié)議EAODV. 貴州大學學報(自 然科學版).2008. [11] 施榮華.崔奕芳.江玲. Ad Hoc網(wǎng)絡中QoS的路由協(xié)議算法研究.計算機科學.2008. [12] 王寧Ad Hoc技術在未來無線通信中的應用

56、 附錄 源代碼 // LanManaDlg.h : header file // #if !defined(AFX_LANMANADLG_H__47CCEDF7_93D3_4C23_944F_EC0DCFC6077A__INCLUDED_) #define AFX_LANMANADLG_H__47CCEDF7_93D3_4C23_944F_EC0DCFC6077A__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //////////////

57、/////////////////////////////////////////////////////////////// // CLanManaDlg dialog class CLanManaDlg : public CDialog { // Construction public: static UINT GetHostInfo(LPVOID param); static UINT ExploreHost(LPVOID param); CLanManaDlg(CWnd* pParent = NULL); // standard constructor

58、static CString m_IPAddressPre; // Dialog Data //{{AFX_DATA(CLanManaDlg) enum { IDD = IDD_LANMANA_DIALOG }; CListCtrl m_Info; CButton m_SORH; CButton m_Select; CButton m_Refresh; CButton m_Quary; CButton m_Index; CString m_Text; int m_End; int m_Begin; CString m_Pre; //}

59、}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CLanManaDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CLanM

60、anaDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnButtonIndex(); afx_msg void OnButtonRefresh(); afx_msg void OnButtonSelect(); afx_msg void OnButtonQuary(); afx_msg voi

61、d OnTimer(UINT nIDEvent); afx_msg void OnButtonSorh(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: bool m_IsAuto; static _RecordsetPtr OperateDB(CString sql); void PrintFigure(); bool m_IsShow; HANDLE m_HThread; bool m_IsOn; void GetData(CString sql); void ShowFigure(); void

62、ShowList(); bool m_IsIist; CString m_IPAddress; }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_LANMANADLG_H__47CCEDF7_93D3_4C23_944F_EC0DCFC6077A__INCLUDED_) // LanManaDlg.cpp : implemen

63、tation file // #include "stdafx.h" #include "LanMana.h" #include "LanManaDlg.h" #include "DataClass.h" #include #include #include "ArpDll.h" #include "Iphlpapi.h" #pragma comment(lib,"Iphlpapi.lib") #pragma comment(lib,"Ws2_32.lib") #pragma comment(lib,"ArpDll.lib")

64、 #define SPAN 5 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif HANDLE hMutex =NULL; ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { p

65、ublic: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL //

66、 Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!