端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告( 2014- 2015年度第2學(xué)期)名 稱: 網(wǎng)絡(luò)綜合實(shí)驗(yàn) 題 目: 端口掃描程序設(shè)計(jì)與實(shí)現(xiàn) 院 系: 計(jì)算機(jī)系 班 級(jí): 網(wǎng)絡(luò)1202 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師:李麗芬 曹錦剛 劉曉峰 設(shè)計(jì)周數(shù): 2周 成 績(jī): 日期:2015 年 7 月 5 日網(wǎng)絡(luò)綜合實(shí)驗(yàn)任 務(wù) 書(shū)一、實(shí)驗(yàn)名稱:端口掃描程序設(shè)計(jì)與實(shí)現(xiàn)二、目的與要求1 任務(wù):設(shè)計(jì)并實(shí)現(xiàn)一個(gè)端口掃描程序,檢測(cè)某個(gè)IP或某段IP的計(jì)算機(jī)的端口工作情況。2 目的:加深對(duì)課堂講授知識(shí)的理解,熟練掌握基本的網(wǎng)絡(luò)編程技術(shù)和方法,建立網(wǎng)絡(luò)編程整體概念,使得學(xué)生初步具有研究、設(shè)計(jì)、編制和調(diào)試網(wǎng)絡(luò)程序的能力。3 要求:熟悉有關(guān)定義、概念

2、和實(shí)現(xiàn)算法,設(shè)計(jì)出程序流程框圖和數(shù)據(jù)結(jié)構(gòu),編寫(xiě)出完整的源程序,基本功能完善,方便易用,操作無(wú)誤。4 學(xué)生人數(shù):1人。三、主要內(nèi)容1 編寫(xiě)一個(gè)端口掃描程序,能夠顯示某個(gè)IP或某段IP的計(jì)算機(jī)的某一個(gè)或某些端口是否正在工作。(1) 設(shè)定好一定的端口掃描范圍,并設(shè)定每個(gè)端口掃描的次數(shù),因?yàn)橛锌赡苡械亩丝谝淮螔呙杩赡懿煌ǎ?3) 創(chuàng)建socket,通過(guò)socket的connect方法來(lái)連接遠(yuǎn)程IP地址以及對(duì)應(yīng)的端口;(4) 如果返回false,表示端口沒(méi)有開(kāi)放,否則端口開(kāi)放。四、進(jìn)度計(jì)劃序號(hào)設(shè)計(jì)內(nèi)容完成時(shí)間備注1任務(wù)布置及資料收集第1周周一、周二2軟件方案設(shè)計(jì)與制定第1周周三至周四3編程實(shí)現(xiàn)第1周周周

3、五至第2周周二4程序測(cè)試與修改,撰寫(xiě)報(bào)告第2周周三至周五上午5軟件驗(yàn)收,報(bào)告提交 周五下午五、設(shè)計(jì)成果要求1 完成規(guī)定的實(shí)驗(yàn)任務(wù),保質(zhì)保量;2 完成綜合實(shí)驗(yàn)報(bào)告,要求格式規(guī)范,內(nèi)容具體而翔實(shí),應(yīng)體現(xiàn)自身所做的工作,注重對(duì)實(shí)驗(yàn)思路的歸納和對(duì)問(wèn)題解決過(guò)程的總結(jié)。六、 考核方式1 平時(shí)成績(jī)驗(yàn)收答辯實(shí)驗(yàn)報(bào)告;2 五級(jí)分制。 學(xué)生姓名:韋笑指導(dǎo)教師:李麗芬 曹錦剛 劉曉峰 2015 年7 月 5 日一、綜合實(shí)驗(yàn)的目的與要求 1目的:加深對(duì)計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)課程知識(shí)的理解,熟練掌握基本的網(wǎng)絡(luò)編程技術(shù)和方法,建立網(wǎng)絡(luò)編程整體概念,加深對(duì)JAVA編程語(yǔ)言的使用,促進(jìn)編程能力的提高,同時(shí)為網(wǎng)絡(luò)編程打下一個(gè)比較好

4、的基礎(chǔ)。同時(shí)對(duì)實(shí)驗(yàn)的過(guò)程要有完全的了解。 2. 要求:熟悉有關(guān)定義、概念和實(shí)現(xiàn)算法,設(shè)計(jì)出程序流程框圖和數(shù)據(jù)結(jié)構(gòu),編寫(xiě)出完整的源程序,基本功能完善,方便易用,操作無(wú)誤。二、綜合實(shí)驗(yàn)正文1、主要方法TCP是Tranfer Control Protocol的 簡(jiǎn)稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。發(fā)送方和接收方的成對(duì)的兩個(gè)socket之間必須建 立連接,以便在TCP協(xié)議的基礎(chǔ)上進(jìn)行通信,當(dāng)一個(gè)socket(通常都是server socket)等待建立連接時(shí),另一個(gè)socket可以要求進(jìn)行連接,一旦這兩個(gè)socket連接起來(lái),它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,雙方都可以進(jìn)行發(fā)送 或接收操作。本實(shí)驗(yàn)在一

5、臺(tái)主機(jī)創(chuàng)建socket,與遠(yuǎn)程主機(jī)的某一個(gè)端口建立TCP連接,通過(guò)java中的isConnected() 函數(shù)判斷連接是否建立成功,若連接建立成功,說(shuō)明該端口開(kāi)放;否則不開(kāi)放。2、實(shí)驗(yàn)流程圖3、實(shí)驗(yàn)優(yōu)化使用socket創(chuàng)建tcp連接時(shí),若連接建立不成功,則程序拋出異常,但會(huì)有一定的時(shí)延。為了加快掃描速度,程序使用了多線程技術(shù),每個(gè)線程掃描10個(gè)端口,并發(fā)執(zhí)行所有線程。這樣就大大加快了掃描速度。4、實(shí)驗(yàn)結(jié)果三、實(shí)驗(yàn)總結(jié)本實(shí)驗(yàn)通過(guò)建立tcp連接來(lái)掃描遠(yuǎn)程主機(jī)端口是否開(kāi)放,使我們更加深入地理解了TCP/IP協(xié)議的原理,加深對(duì)課堂講授知識(shí)的理解,熟練掌握基本的網(wǎng)絡(luò)編程技術(shù)和方法,建立網(wǎng)絡(luò)編程整體概念。

6、這次實(shí)驗(yàn)也鍛煉了我java的編程能力,掌握了socket編程的各種函數(shù)和方法。實(shí)驗(yàn)中也出現(xiàn)了一些問(wèn)題,比如掃描遠(yuǎn)程主機(jī)端口的速度要比掃描本主機(jī)端口速度慢很多,解決方法是關(guān)閉遠(yuǎn)程主機(jī)的防火墻。感謝老師的指導(dǎo)!源代碼:package 端口掃描;import .Socket;import java.util.concurrent.CountDownLatch;public class test extends Thread private int p; Socket ss = null; CountDownLatch latch; private String ipAddress; private

7、int port; public test(int p,CountDownLatch latch,int port,String ipAddress) this.p = p; this.latch=latch; this.ipAddress=ipAddress; this.port=port; public void run() /System.err.println("啟動(dòng)線程"); for(int i=p0; i<p1&&i<=port;i+) try /System.out.println(i); ss = new Socket(ipAdd

8、ress,i); if(ss.isConnected()System.err.println("端口 " + i+"空閑"); ss.close(); catch (Exception e) System.out.println("端口 " + i+"占用"); latch.countDown(); /System.out.println(latch.getCount(); package 端口掃描;import java.util.Scanner;import java.util.concurrent.Count

9、DownLatch;public class test2 public static void main(String args) throws InterruptedException CountDownLatch latch = null; String ip; String ipAddress1; String ipAddress2; String ipAddress3; String ipAddress41; String ipAddress42; System.out.print("輸入起始ip地址:"); Scanner s=new Scanner(System

10、.in); ip=s.next(); String strs = ip.split("."); ipAddress1= strs0; ipAddress2 = strs1; ipAddress3 = strs2; ipAddress41 = strs3; System.out.print("輸入終止ip地址:"+ipAddress1+"."+ipAddress2+"."+ipAddress3+"."); ipAddress42=s.next(); int start=Integer.parseI

11、nt(ipAddress41); int end=Integer.parseInt(ipAddress42); System.out.print("輸入起始端口:"); double startport=s.nextInt(); System.out.print("輸入終止端口:"); double endport=s.nextInt(); s.close(); int th=(int) Math.ceil(endport-startport+1)/10); System.out.println("開(kāi)啟"+th+"線程"); for(int num=start;num<=end;num+) latch=new CountDownLatch(th); String ipAddress = ipAddress1+"."+ipAddress2+"."+ipAddress3+"."

溫馨提示

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

評(píng)論

0/150

提交評(píng)論