版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、簡(jiǎn)單端口掃描器java的設(shè)計(jì)與實(shí)現(xiàn)IPScan類的實(shí)現(xiàn)package scan.pratice;import .InetAddress;import .Socket;import .UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class IPScan static long startTime=System.currentTimeMillis(); /獲取開始時(shí)間public static void main(String
2、 args) if(args.length !=2)System.out.println(參數(shù)不對(duì));int startIP = Integer.parseInt(args0); /獲得起始IP,因?yàn)閍rgs是String類型,所以要強(qiáng)制轉(zhuǎn)換成int類型 int endIP = Integer.parseInt(args1); /獲得終止IP,同上 ArrayList result = new ArrayList();/ip地址掃描for(int id=startIP;id=endIP;id+)String addres= 10.28.23.;try Socket s=new Socket(a
3、ddres+id,8000); /建立連接 catch (UnknownHostException e ) catch(Exception e)/System.out.println(e.toString();if(e.toString().endsWith(.ConnectException: Connection timed out: connect)System.out.println(addres+id+:not exist.);elseSystem.out.println(addres+id+:exist.);ListIterator li = result.list
4、Iterator(); /獲得ArrayList的ListIterator while(li.hasNext() /如果li里面有元素 System.out.println(li.next().toString(); /打印出指向的元素,同時(shí)將指向下一個(gè)元素 long endTime=System.currentTimeMillis(); /獲取結(jié)束時(shí)間System.out.println(程序運(yùn)行時(shí)間: +(endTime-startTime)+ms);PortScan類的實(shí)現(xiàn)package scan.pratice;import java.io.IOException;import jav
5、.InetAddress;import .Socket;import .UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class PortScan static long startTime=System.currentTimeMillis(); /獲取開始時(shí)間public static void main(String args) if(args.length !=3)System.out.println(參數(shù)不對(duì));Strin
6、g ip = args0; /獲得我們指定的服務(wù)器地址 int startPort = Integer.parseInt(args1); /獲得起始端口號(hào),因?yàn)閍rgs是String類型,所以要強(qiáng)制轉(zhuǎn)換成int類型 int endPort = Integer.parseInt(args2); /獲得終止端口號(hào),同上 if(startPort65535|endPort65535) /檢查端口是否在合法范圍165535 System.out.printf(端口范圍必須在165535以內(nèi)!); return; else if(startPortendPort) /比較起始端口和終止端口 System
7、.out.println(端口輸入有誤! 起始端口必須小于終止端口); return; InetAddress address;try address = InetAddress.getByName(ip); /轉(zhuǎn)換類型 catch(UnknownHostException e) System.out.println(無(wú)法找到 + ip); return; ArrayList result = new ArrayList();/端口掃描for(int nport=startPort;nport=endPort;nport+) String typeport=;switch( nport )/其
8、實(shí)這兒可以不用switch,直接用個(gè)hash表記錄就可以 case 21: typeport = (FTP); break; case 23: typeport = (TELNET); break; case 25: typeport = (SMTP); break; case 80: typeport = (HTTP); break; case 110: typeport = (POP); break; case 139: typeport = (netBIOS); break; case 1433: typeport = (SQL Server); break; case 3389: ty
9、peport = (Terminal Service); break; case 443: typeport = (HTTPS); break; case 1521: typeport = (Oracle); break; /從起始端口到終止端口進(jìn)行循環(huán) try /System.out.print(Scanning +nport); /打印掃描進(jìn)度 System.out.println(ip + :+nport);Socket s=new Socket(address,nport); /建立連接 /關(guān)閉連接 if(s.isConnected()result.add(端口號(hào):+nport+typ
10、eport+ open); s.close();/將打開的端口添加到ArrayList result里面 /System.out.println( : open); /打印狀態(tài) catch(IOException e)System.out.println(e.toString();/System.out.println(:close); /打印狀態(tài) result.add(端口號(hào):+nport+typeport+ close); ListIterator li = result.listIterator(); /獲得ArrayList的ListIterator while(li.hasNext(
11、) /如果li里面有元素 System.out.println(li.next().toString(); /打印出指向的元素,同時(shí)將指向下一個(gè)元素 long endTime=System.currentTimeMillis(); /獲取結(jié)束時(shí)間System.out.println(程序運(yùn)行時(shí)間: +(endTime-startTime)+ms);TCPConnect類的實(shí)現(xiàn)package scan.pratice;import java.io.IOException;import .InetAddress;import .Socket;import java.
12、net.UnknownHostException;import java.util.ArrayList;import java.util.ListIterator;public class TCPConnect static long startTime=System.currentTimeMillis(); /獲取開始時(shí)間public static void main(String args) if(args.length !=3)System.out.println(參數(shù)不對(duì));String ip = args0; /獲得我們指定的服務(wù)器地址 int startPort = Integer
13、.parseInt(args1); /獲得起始端口號(hào),因?yàn)閍rgs是String類型,所以要強(qiáng)制轉(zhuǎn)換成int類型 int endPort = Integer.parseInt(args2); /獲得終止端口號(hào),同上 if(startPort65535|endPort65535) /檢查端口是否在合法范圍165535 System.out.printf(端口范圍必須在165535以內(nèi)!); return; else if(startPortendPort) /比較起始端口和終止端口 System.out.println(端口輸入有誤! 起始端口必須小于終止端口); return; InetAdd
14、ress address;try address = InetAddress.getByName(ip); /轉(zhuǎn)換類型 catch(UnknownHostException e) System.out.println(無(wú)法找到 + ip); return; ArrayList result = new ArrayList();/*/端口掃描for(int nport=startPort;nport=endPort;nport+) String typeport=;switch( nport )/其實(shí)這兒可以不用switch,直接用個(gè)hash表記錄就可以 case 21: typeport =
15、(FTP); break; case 23: typeport = (TELNET); break; case 25: typeport = (SMTP); break; case 80: typeport = (HTTP); break; case 110: typeport = (POP); break; case 139: typeport = (netBIOS); break; case 1433: typeport = (SQL Server); break; case 3389: typeport = (Terminal Service); break; case 443: typ
16、eport = (HTTPS); break; case 1521: typeport = (Oracle); break; /從起始端口到終止端口進(jìn)行循環(huán) try /System.out.print(Scanning +nport); /打印掃描進(jìn)度 System.out.println(ip + :+nport);Socket s=new Socket(address,nport); /建立連接 /關(guān)閉連接 if(s.isConnected()result.add(端口號(hào):+nport+typeport+ open); s.close();/將打開的端口添加到ArrayList resul
17、t里面 /System.out.println( : open); /打印狀態(tài) catch(IOException e)System.out.println(e.toString();/System.out.println(:close); /打印狀態(tài) result.add(端口號(hào):+nport+typeport+ close); */ip地址掃描for(int id=178;id183;id+)String addres= 10.28.23.;try Socket s=new Socket(addres+id,8000); /建立連接 catch (UnknownHostException e ) catch(Exception e)/System.out.println(e.toString();if(e.toString().endsWith(.ConnectException: Connection timed out: connect)System.out.println(addres+id+:not exist.);elseSystem.out.println
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國(guó)西電集團(tuán)限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)移動(dòng)安徽分公司春季社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)電信山東泰安分公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)農(nóng)業(yè)科學(xué)院北京畜牧獸醫(yī)研究所公開招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)-東盟信息港股份限公司人才招聘(廣西)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年浙江省臺(tái)州市市屬事業(yè)單位招聘179人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年廣東省佛山市直事業(yè)單位統(tǒng)一招聘57人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川省自貢市貢井區(qū)事業(yè)單位招聘90人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川省廣元事業(yè)單位招聘175人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海城投水務(wù)(集團(tuán))限公司招聘129人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳海報(bào)
- 《生物炭對(duì)重金屬污染土壤修復(fù)的研究綜述論文》4000字
- 2024-2030年中國(guó)企業(yè)大學(xué)建設(shè)行業(yè)轉(zhuǎn)型升級(jí)模式及投資規(guī)劃分析報(bào)告
- 醫(yī)院培訓(xùn)課件:《病歷書寫基本規(guī)范(醫(yī)療核心制度)》
- 2024-2025學(xué)年上學(xué)期12月質(zhì)量監(jiān)測(cè)七年數(shù)學(xué)試卷
- 2024年“中銀杯”安徽省職業(yè)院校技能大賽(高職組)花藝賽項(xiàng)競(jìng)賽規(guī)程
- 2024-2025學(xué)年七年級(jí)上學(xué)期歷史觀點(diǎn)及論述題總結(jié)(統(tǒng)編版)
- 2024年安全員A證考試題庫(kù)及答案(1000題)
- 國(guó)開 2024 年秋《機(jī)電控制工程基礎(chǔ)》形考任務(wù)1234答案+【2020形考1234答案】全析
- 青島大學(xué)《英語(yǔ)綜合》2023-2024學(xué)年第一學(xué)期期末試卷
- 加工裝配業(yè)務(wù)合作框架協(xié)議
評(píng)論
0/150
提交評(píng)論