版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機網(wǎng)絡課程設計報告題目:端口掃描器問題描述(把你所選的題目及要求說一下)我們做的題目是端口掃描器。實現(xiàn)一個掃描器,使用TCP
connect進行端口掃描,并對掃描結果進行記錄。主要是為了加深對TCP/IP的理解,學習端口掃描技術和原理。端口掃描器包括IP掃描和端口掃描,IP掃描使用同一網(wǎng)段的IP地址,端口掃描是對特定主機的一個范圍段內的端口進行掃描,兩者使用相同的原理,均使用TCP三次握手對主機的端口進行偵聽來進行判斷。掃描器是一種自動檢測遠程或本地主機安全性弱點的程序,通過使用掃描器你可以不留痕跡的發(fā)現(xiàn)遠程服務器的各種TCP端口的分配。這就能讓我們間接的或直觀的了解到遠程主機所存在的安全問題。為了保證網(wǎng)絡中計算機的安全性,必須采取主動策略,快速、及時、準確、安全的檢測出網(wǎng)絡中計算機及防火墻開放的和未開放的端口。計算機端口掃描技術就是這種主動防御策略實現(xiàn)的重要技術手段。而端口掃描器中的“端口”是專門為計算機通信而設計的,它并非硬件,不同于計算機中的“插槽”?!岸丝凇笔怯捎嬎銠C的通信協(xié)議TCP/IP協(xié)議定義的。其中規(guī)定,用IP地址和端口作為套接字,它代表TCP連接的一個連接端,一般稱為Socket。具體來說,就是用[IP:端口]來定位一臺主機中的進程。計算機就像一座大樓,這個大樓有好多入口(端口),進到不同的入口中就可以找到不同的公司(進程)。端口與進程是一一對應的,入侵者通過掃描端口,便可以判斷出目標計算機有哪些通信進程正在等待連接。
要求是:使用端口掃描器對一臺主機進行掃描,并顯示出結果;對一個網(wǎng)段進行IP掃描,顯示出結果。
概要設計圖1流程圖詳細設計(主要算法和函數(shù)間的調用關系)1、主要算法思想:利用系統(tǒng)提供的connect系統(tǒng)調用,用來與每一個感興趣的目標計算機的端口進行連接。如果端口處于偵聽狀態(tài),那么connect就會成功;否則,這個端口是不能夠用的,即沒有提供服務。端口偵聽狀態(tài):就是端口處于開放狀態(tài),等待連接,但是沒有被連接。掃描有很多種,包括TCPconnect()掃描、TCPSYN掃描、TCPFIN掃描、IP段掃描、TCP反向ident掃描、FTP返回攻擊等等。本設計采用TCPconnect()掃描。優(yōu)點是穩(wěn)定可靠,不需要特殊權限;缺點是掃描方式不隱蔽,服務器日志會記錄大量密集的鏈接和錯誤記錄,并容易被防火墻發(fā)現(xiàn)和屏蔽。2、實現(xiàn)原理:通過調用socket方法connnect()連接到目標計算機上,完成一次完整的三次握手,如果端口處于偵聽狀態(tài),那么該方法就返回成功;否則,該端口不可用,即沒有提供服務。本設計采用Java編程語言實現(xiàn),加深對計算機網(wǎng)絡TCP連接的認知和掌握,同時增加對Java的認識使用。端口掃描:通過對界面提交數(shù)據(jù)的處理,調用端口掃描程序依次對特定主機的端口進行掃描,并將掃描結果呈現(xiàn)在界面中。IP掃描:通過對界面提交數(shù)據(jù)的處理,調用IP掃描程序依次對該IP段的多個常用端口進行掃描,如果連接成功,代表IP正在使用,否則,IP停止使用。兩者都是對端口進行掃描,是通過Java提供的套接字Socket的connect()方法對端口進行連接,如果端口處于偵聽狀態(tài),即連接成功,否則就連接失敗。3、網(wǎng)絡基礎知識:TCP三次握手原理及過程:第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND,等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài)第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。Java網(wǎng)絡套接字Socket:網(wǎng)絡上的兩個程序通過一個雙向的通訊連接實現(xiàn)數(shù)據(jù)的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現(xiàn)客戶方和服務方的連接。Socket是TCP/IP協(xié)議的一個十分流行的編程界面,一個Socket由一個IP地址和一個端口號唯一確定。4、程序方法:Main類作為主類啟動程序。PortScannerFrame類作為界面類和相應掃描處理類;其中的PortScannerFrame構造方法初始化程序界面,并對界面相應組件添加事件監(jiān)聽;actionPerformed方法是對掃描數(shù)據(jù)進行監(jiān)聽,并對一些異常進行處理,并調用相應的處理方法。PortScanThread類是端口掃描的類,其中的方法startScan是進行端口掃描處理的方法。IpScanThread類是IP掃描的類,其中的方法startScan是IP掃描處理的方法。IPData類和PortData類是一JavaBean對象,是對界面數(shù)據(jù)進行封裝并在相應處理類中進行創(chuàng)建實例的對象。調試分析(調式過程中出現(xiàn)的問題及如何改正)1、問題:界面提交數(shù)據(jù)進行封裝時,錯誤數(shù)據(jù)也可以提交解決:在觸發(fā)監(jiān)聽后,對數(shù)據(jù)進行校驗,并對錯誤數(shù)據(jù)進行提示取消操作2、問題:端口掃描實現(xiàn)過程中,出現(xiàn)連接異常解決:經(jīng)過查找后,異常時端口連接不成功時拋出的,需要進行處理,就對異常進行了顯示處理3、問題:端口掃描采用線程池出現(xiàn)重復內容解決:取消線程池的使用,采用線性方式開啟多個端口連接線程同時連接達到同樣的效果4、問題:數(shù)據(jù)校驗問題,包括前后順序,大小比較的忘記,導致出現(xiàn)空指針異常解決:添加相應的順序控制和大小比較來解決5、問題:這次計算機網(wǎng)絡課程設計,界面布局開始自己寫,但布局自己寫的時候頻頻出現(xiàn)問題解決:通過網(wǎng)上查資料、看書、等方法不斷改進并解決心得體會(組內成員的分工及實習期間的體會)成員分工:王力爭負責程序的編寫與調試。王宏東與劉佳東負責搜索資料和寫報告書。體會:通過這次課程設計我們學到了很多,不但讓我們更加深刻了解課本知識,也得以往對知識的疏忽得以補充,同時也使我們學會了成員之間要相互合作與協(xié)調,才能使工作更有效率,更有成效。通過課程設計也使我們了解到一些實際與理論之間的差異。通過課程設計不僅可以鞏固專業(yè)知識,為以后的工作打下了堅實的基礎,而其還可以培養(yǎng)和熟練使用資料,運用工具書的能力,把我們所學的課本知識與實踐結合起來,起到溫故而知新的作用。課程設計給了我們很多專業(yè)知識以及專業(yè)技能上的提升。同時我們也發(fā)現(xiàn)自己有許多不足的地方,還有許多東西待我們去學習??傊@次課程設計使我們收獲很多、學會很多、比以往更有耐心。用戶手冊(系統(tǒng)的使用方法介紹)IP地址掃描使用方法:打開界面后,可以根據(jù)界面上的提示,輸入需要查詢的起始IP地址和終止IP地址。然后點擊開始按鈕,系統(tǒng)便開始自動查詢,并把結果顯示出來。端口掃描使用方法:打開界面后,根據(jù)界面提示,首先輸入需要查詢的主機IP地址,然后端口的起始與終止端口號。在點擊開始端口掃描按鈕,系統(tǒng)便開始查詢,并把結果顯示出來。附錄:主要代碼如下: /** *事件監(jiān)聽 */ publicvoidactionPerformed(ActionEvente){ //IP掃描 if(e.getSource()==startButton){//點擊開始掃描ip地址 jta0.setText("IP地址 鏈接狀態(tài)\n"); jta1.setText("IP地址 鏈接狀態(tài)\n");intipNum=0;//IP個數(shù)初始化 Patternpattern=Pattern .compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b"); Matchermatcher1=pattern.matcher(ipField.getText()); Matchermatcher2=pattern.matcher(ipField2.getText()); if(!matcher1.matches()||!matcher2.matches()){ JOptionPane.showMessageDialog(null,"您輸入的IP地址有誤?。?!"); return; } ipData.setStartIP(ipField.getText()); ipData.setEndIP(ipField2.getText()); ipNum=this.calculateIPCount(); if(ipNum==-1){ JOptionPane.showMessageDialog(null,"您輸入的IP地址不在同一網(wǎng)段!??!"); return; } ExecutorServiceexecutor=Executors.newScheduledThreadPool(50);//設定線程池 //先全部添加到線程池中,再啟動線程 for(inti=0;i<ipNum;i++){ executor.execute(newIpScanThread()); }} //端口掃描 if(e.getSource()==this.startPortScan){ jta2.setText("主機IP 端口號 端口狀態(tài)\n"); jta3.setText("主機IP 端口號 端口狀態(tài)\n"); Patternpattern=Pattern .compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b");Matchermatcher1=pattern.matcher(ipFieldForPortScan.getText()); if(!matcher1.matches()){ JOptionPane.showMessageDialog(null,"您輸入的IP地址有誤?。。?); return; } Integerport; IntegerndPort; try{ port=Integer.parseInt(startPort.getText()); ndPort=Integer.parseInt(endPort.getText()); if(port<0||ndPort>65535||port>ndPort){ JOptionPane.showMessageDialog(null, "最小端口必須是0-65535并且小于最大端口的整數(shù)?。?!"); return; } portData.setIp(ipFieldForPortScan.getText().trim()); portData.setPort(port);//設置起始掃描端口 portData.setEndPort(ndPort); newThread(newPortScanThread()).start(); }catch(NumberFormatExceptione1){ JOptionPane.showMessageDialog(null,"錯誤的端口號或線程數(shù),其值須為整數(shù)?。。?); return; } } } /** *端口掃描 * *@authorwanglizheng * */ classPortScanThreadimplementsRunnable{publicvoidrun(){ startScan(); }publicvoidstartScan(){//調用該方法開始掃描 Socketsocket=null; while(portData.getPort()<=portData.getEndPort()){ try{ socket=newSocket(portData.getIp(),portData.getPort()); if(socket.isConnected()){ jta2.append(portData.getIp()+" " +portData.getPort()+" 開放\n"); } }catch(Exceptione){ jta3.append(portData.getIp()+" "+portData.getPort() +" 關閉\n"); } portData.setPort(portData.getPort()+1); } jta3.append("掃描結束?。?!"); } } /** *IP掃描 * *@authorwanglizheng * */ classIpScanThreadimplementsRunnable{
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球鍍鎳服務行業(yè)調研及趨勢分析報告
- 2025-2030全球液密柔性非金屬導管行業(yè)調研及趨勢分析報告
- 2025-2030全球水電解用全氟磺酸膜行業(yè)調研及趨勢分析報告
- 2025年全球及中國半自動焊接機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國癸二酸二酰肼行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球小尺寸工業(yè)平板電腦行業(yè)調研及趨勢分析報告
- 2025年全球及中國二氧化碳捕獲機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國叉車機器人行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球制藥用乙酰氯行業(yè)調研及趨勢分析報告
- 2025年全球及中國高壓交流陸纜行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 三廢環(huán)保管理培訓
- 藏族唐卡藝術特色分析
- QFD模板含計算公式計分標準說明模板
- 醫(yī)院護理培訓課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 00015-英語二自學教程-unit3
- 碳納米管及其應用課件
- 病故軍人證明書如何辦理
- 企業(yè)合規(guī)管理實務
- 安宮牛黃丸課件
- GB/T 21117-2007磁致伸縮液位計
評論
0/150
提交評論