端口掃描程序設(shè)計(jì)(詳細(xì)的報(bào)告+源代碼)_第1頁(yè)
端口掃描程序設(shè)計(jì)(詳細(xì)的報(bào)告+源代碼)_第2頁(yè)
端口掃描程序設(shè)計(jì)(詳細(xì)的報(bào)告+源代碼)_第3頁(yè)
端口掃描程序設(shè)計(jì)(詳細(xì)的報(bào)告+源代碼)_第4頁(yè)
端口掃描程序設(shè)計(jì)(詳細(xì)的報(bào)告+源代碼)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余11頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、 網(wǎng)絡(luò)綜合實(shí)驗(yàn)任 務(wù) 書(shū)一、 目的與要求1 性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)。2 任務(wù):設(shè)計(jì)并實(shí)現(xiàn)一個(gè)端口掃描程序,檢測(cè)某個(gè)IP或某段IP的計(jì)算機(jī)的端口工作情況。3 目的:加深對(duì)課堂講授知識(shí)的理解,熟練掌握基本的網(wǎng)絡(luò)編程技術(shù)和方法,建立網(wǎng)絡(luò)編程整體概念,使得學(xué)生初步具有研究、設(shè)計(jì)、編制和調(diào)試網(wǎng)絡(luò)程序的能力。4 要求:熟悉有關(guān)定義、概念和實(shí)現(xiàn)算法,設(shè)計(jì)出程序流程框圖和數(shù)據(jù)結(jié)構(gòu),編寫(xiě)出完整的源程序,基本功能完善,方便易用,操作無(wú)誤。5 學(xué)生要求人數(shù):1人。二、 主要容1 編寫(xiě)一個(gè)端口掃描程序,能夠顯示某個(gè)IP或某段IP的計(jì)算機(jī)的某一個(gè)或某些端口是否正在工作?;竟ぷ鬟^(guò)程如下:(1) 設(shè)定好一定的端口掃描圍;(2)

2、 設(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ì)容完成時(shí)間備注1任務(wù)布置及資料收集第1周周一、周二2軟件方案設(shè)計(jì)與制定第1周周三至周四3編程實(shí)現(xiàn)第1周周周五至第2周周二4程序測(cè)試與修改,撰寫(xiě)報(bào)告第2周周三至周五上午5報(bào)告提交,軟件驗(yàn)收周五下午四、設(shè)計(jì)成果要求1 完成規(guī)定的實(shí)驗(yàn)任務(wù),保質(zhì)保量;2 完成綜合實(shí)驗(yàn)報(bào)告,要求格式規(guī),容具體而翔實(shí),應(yīng)體現(xiàn)自身所做的工作,注重對(duì)實(shí)驗(yàn)思路的歸納和對(duì)問(wèn)題解決過(guò)程的總結(jié)。五

3、、 考核方式1 平時(shí)成績(jī)驗(yàn)收答辯實(shí)驗(yàn)報(bào)告;2 五級(jí)分制。 學(xué)生: 指導(dǎo)教師: 2009 年 6月8 日一、綜合實(shí)驗(yàn)的目的與要求1目的:加深對(duì)課堂講授知識(shí)的理解,熟練掌握基本的網(wǎng)絡(luò)編程技術(shù)和方法,建立網(wǎng)絡(luò)編程整體概念,加深對(duì)JAVA編程語(yǔ)言的使用,促進(jìn)編程能力的提高,同時(shí)為網(wǎng)絡(luò)編程打下一個(gè)比較好的基礎(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編程語(yǔ)言的選擇針對(duì)編寫(xiě)的是端口掃描的程序,所以我選擇了JAVA編程,因?yàn)橐?jiǎn)單而方便的試驗(yàn)端口掃描的功能。2端口掃描實(shí)現(xiàn)的功

4、能是:顯示某個(gè)IP或某段IP的計(jì)算機(jī)的某一個(gè)或某些端口是否正在工作21 如何選擇IP段和端口創(chuàng)建socket,通過(guò)socket的connect方法來(lái)連接遠(yuǎn)程IP地址以及對(duì)應(yīng)的端口。而我使用的是socket函數(shù)來(lái)實(shí)現(xiàn)端口的掃描和IP地址的選擇掃描。22 如何實(shí)現(xiàn)快速掃描端口通過(guò)實(shí)現(xiàn)多線(xiàn)程,當(dāng)一個(gè)IP或者一個(gè)端口同時(shí)分配多個(gè)線(xiàn)程進(jìn)行掃描,速度會(huì)比單線(xiàn)程掃描快許多。23 顯示掃描結(jié)果可以在使用JAVA編寫(xiě)的時(shí)候,可以通過(guò)使用JScrollPane控件實(shí)現(xiàn)顯示結(jié)果。24 實(shí)現(xiàn)要求功能之余美化外觀(guān)3創(chuàng)建應(yīng)用程序界面31 建立主窗體 ,“JAVA端口掃描器”圖1-132 IP地址的輸入部分圖1-2 33

5、端口部分,其中包括指定的端口和指定掃描的端口圍圖1-334 多線(xiàn)程的實(shí)現(xiàn)和延時(shí)的控制部分圖1-435 增加的保存及快捷鍵功能圖1-5 4掃描的整個(gè)過(guò)程41 填寫(xiě)IP地址002042 填寫(xiě)端口掃描的圍為130043 線(xiàn)程數(shù)選擇為10044 掃描結(jié)果如下圖1-6三端口掃描的主要部分程序如下import .*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;/* *實(shí)現(xiàn)掃描的主體程序 */public class ThreadScanpublic

6、 static JFrame main=new JFrame("JAVA端口掃描器");/顯示掃描結(jié)果public static JTextArea Result=new JTextArea("",4,40);/滾動(dòng)條面板 public staticJScrollPaneresultPane=newJScrollPane(Result,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED;/輸入主機(jī)名文本框public static JTex

7、tField hostname=new JTextField("localhost",8);/輸入ip地址前3位的輸入框public static JTextField fromip1=new JTextField("0",3);/輸入ip地址46位的輸入框public static JTextField fromip2=new JTextField("0",3);/輸入ip地址79位的輸入框public static JTextField fromip3=new JTextField("0",3);/輸入起始ip

8、地址最后4位的輸入框public static JTextField fromip4=new JTextField("0",3);/輸入目標(biāo)ip地址最后4位的輸入框public static JTextField toip=new JTextField("0",3);/輸入最小端口的輸入框public static JTextField minPort=new JTextField("0",4);/輸入最大端口的輸入框public static JTextField maxPort=new JTextField("1000&

9、quot;,4);/輸入最大線(xiàn)程數(shù)量的輸入框public static JTextField maxThread=new JTextField("100",3);/錯(cuò)誤提示框public static JDialog DLGError=new JDialog(main,"錯(cuò)誤!");public static JLabel DLGINFO=new JLabel("");public static JLabel type=new JLabel("請(qǐng)選擇:");/掃描類(lèi)型public static JRadioButt

10、on radioIp = new JRadioButton("IP地址:");public static JRadioButton radioHost = new JRadioButton("主機(jī)名:",true);/單選框組public static ButtonGroup group = new ButtonGroup();public static JLabel P1=new JLabel("端口圍:");public static JLabel P2=new JLabel("");public static

11、 JLabel P3=new JLabel("");public static JLabel Pdot1 = new JLabel(".");public static JLabel Pdot2 = new JLabel(".");public static JLabel Pdot3 = new JLabel(".");public static JLabel TNUM=new JLabel("線(xiàn)程數(shù):");public static JLabel RST=new JLabel("掃描

12、結(jié)果: ");public static JLabel con=new JLabel(" ");/定義按鈕public static utton OK = new utton("確定");public static utton Submit = new utton("開(kāi)始掃描");public static utton Cancel = new utton("退出");public static utton saveButton = new utton("保存掃描結(jié)果");/菜單欄pu

13、blic static JMenuBar myBar = new JMenuBar();public static JMenu myMenu = new JMenu("文件(F)");public static JMenuItem saveItem = new JMenuItem("保存掃描結(jié)果(S)");public static JMenuItem exitItem = new JMenuItem("退出(Q)");public static void main(String args)main.setSize(500,400);

14、main.setLocation(300,300);main.setResizable(false);main.setLayout(new GridBagLayout();main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);DLGError.setSize(300,100);DLGError.setLocation(400,400);/添加“菜單欄”myMenu.add(saveItem);myMenu.add(exitItem);myBar.add(myMenu);main.setJMenuBar(myBar);/設(shè)置熱鍵myMenu.se

15、tMnemonic('F'); saveItem.setMnemonic ('S'); /為“另存為”組件設(shè)置快捷鍵為ctrl+ssaveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); exitItem.setMnemonic('Q'); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK); /采用表格包型布局Contain

16、er mPanel = main.getContentPane();GridBagConstraints c = new GridBagConstraints();c.insets = new Insets(10,0,0,10);c.gridx = 0;c.gridy = 0;c.gridwidth = 10;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(type,c);group.add(radioIp);group.add(radioHost);c.gridx = 0;c.g

17、ridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(radioIp,c);c.gridx = 1;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(fromip1,c);c.gridx = 2;c.gridy = 1;c.gridwidth = 1;c.fill = Gr

18、idBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(Pdot1,c);c.gridx = 3;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(fromip2,c);c.gridx = 4;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridB

19、agConstraints.CENTER;mPanel.add(Pdot2,c);c.gridx = 5;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(fromip3,c);c.gridx = 6;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(Pdot3,

20、c);c.gridx = 7;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(fromip4,c);c.gridx = 8;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(P2,c);c.gridx = 9;c.gridy = 1;c.gridwidth =

21、1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(toip,c);c.gridx = 0;c.gridy = 2;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(radioHost,c);c.gridx = 1;c.gridy = 2;c.gridwidth = 3;c.fill = GridBagConstraints.BOTH;c.

22、anchor = GridBagConstraints.CENTER;mPanel.add(hostname,c);c.gridx = 0;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(P1,c);c.gridx = 1;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPane

23、l.add(minPort,c);c.gridx = 2;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(P3,c);c.gridx = 3;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(maxPort,c);c.gridx = 0;c.gridy = 4;

24、c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(TNUM,c);c.gridx = 1;c.gridy = 4;c.gridwidth = 3;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(maxThread,c);c.gridx = 0;c.gridy = 5;c.gridwidth = 3;c.fill = GridBagConst

25、raints.VERTICAL;c.anchor = GridBagConstraints.CENTER;mPanel.add(Submit,c);c.gridx = 6;c.gridy = 5;c.gridwidth = 4;c.fill = GridBagConstraints.VERTICAL;c.anchor = GridBagConstraints.CENTER;mPanel.add(Cancel,c);c.gridx = 0;c.gridy = 6;c.gridwidth = 10;c.fill = GridBagConstraints.BOTH;c.anchor = GridBa

26、gConstraints.CENTER;mPanel.add(RST,c);/設(shè)置文本區(qū)域可以換行Result.setLineWrap(true);/設(shè)置文本區(qū)域不可編輯Result.setEditable(false);c.gridx = 0;c.gridy = 7;c.gridwidth = 10;c.gridheight = 4;c.fill = GridBagConstraints.VERTICAL;c.anchor = GridBagConstraints.CENTER;mPanel.add(resultPane,c);Container dPanel = DLGError.getC

27、ontentPane();dPanel.setLayout(new FlowLayout(FlowLayout.CENTER);dPanel.add(DLGINFO);dPanel.add(OK);Submit.addActionListener(new SubmitAction();Cancel.addActionListener(new CancleAction();OK.addActionListener(new OKAction();/實(shí)現(xiàn)退出功能exitItem.addActionListener(new java.awt.event.ActionListener() public

28、void actionPerformed(java.awt.event.ActionEvent e) System.exit(0););/實(shí)現(xiàn)幫助功能saveButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) JFileChooser fc=new JFileChooser();int returnVal=fc.showSaveDialog(null);/點(diǎn)擊“保存”if(returnVal = 0)File

29、saveFile=fc.getSelectedFile();try FileWriter writeOut = new FileWriter(saveFile);writeOut.write(ThreadScan.Result.getText();writeOut.close();catch (IOException ex) System.out.println("保存失敗");/點(diǎn)擊“取消”elsereturn;);main.setVisible(true);/* *實(shí)現(xiàn)“取消”功能 *退出程序 */class CancleAction implements Action

30、Listenerpublic void actionPerformed (ActionEvent e)System.exit(0);/* *實(shí)現(xiàn)“確定”功能 *完成掃描 */class SubmitAction implements ActionListenerpublic void actionPerformed (ActionEvent a)int minPort;int maxPort;int maxThread;int ip1 = 0;int ip2 = 0;int ip3 = 0;int ipstart = 0;int ipend = 0;String ipaddress = &qu

31、ot;"String hostname = ""ThreadScan.Result.setText("");/將"確定"按鈕設(shè)置成為不可用if(ThreadScan.Submit.isEnabled()ThreadScan.Submit.setEnabled(false);/* *判斷搜索的類(lèi)型 *按照ip地址掃描:type = 0 *按照主機(jī)名稱(chēng)掃描:type = 1 */if(ThreadScan.radioIp.isSelected()TCPThread.type = 0;/判斷ip的前3位是否為int型tryip1=

32、Integer.parseInt(ThreadScan.fromip1.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的ip!");ThreadScan.DLGError.setVisible(true);return;/判斷ip的46位是否為int型tryip2=Integer.parseInt(ThreadScan.fromip2.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)

33、誤的ip!");ThreadScan.DLGError.setVisible(true);return;/判斷ip的79位是否為int型tryip3=Integer.parseInt(ThreadScan.fromip3.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的ip!");ThreadScan.DLGError.setVisible(true);return;/判斷起始ip的最后4位是否為int型tryipstart=Integer.parseInt(Thread

34、Scan.fromip4.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的ip!");ThreadScan.DLGError.setVisible(true);return;/判斷目標(biāo)ip的最后4位是否為int型tryipend=Integer.parseInt(ThreadScan.toip.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的目標(biāo)ip!");Thread

35、Scan.DLGError.setVisible(true);return;/判斷起始ip是否正確/判斷條件:大于0且小于等于255if(ip1<0 | ip1>255|ip2<0 | ip2>255|ip3<0 | ip3>255|ipstart<0 | ipstart>255)ThreadScan.DLGINFO.setText(" ip地址為0-255的整數(shù)! ");ThreadScan.DLGError.setVisible(true);return;elseTCPThread.ip1 = ip1;TCPThread.

36、ip2 = ip2;TCPThread.ip3 = ip3;TCPThread.ipstart = ipstart;/判斷目標(biāo)ip是否正確/判斷條件:大于0且小于等于255if(ipend<0 | ipend>255)ThreadScan.DLGINFO.setText("目標(biāo)ip地址為0-255的整數(shù)! ");ThreadScan.DLGError.setVisible(true);return;elseTCPThread.ipend = ipend;ipaddress = "" + ip1 + ip2 + ip3 + ipstart;/*

37、 *判斷ip地址的有效性 */tryTCPThread.hostAddress=InetAddress.getByName(ipaddress);catch(UnknownHostException e)ThreadScan.DLGINFO.setText(" 錯(cuò)誤的IP或地址不可達(dá)! ");ThreadScan.DLGError.setVisible(true);return;/根據(jù)主機(jī)名進(jìn)行端口掃描if(ThreadScan.radioHost.isSelected()TCPThread.type = 1;/* *判斷主機(jī)名稱(chēng)的有效性 */tryTCPThread.ho

38、stAddress=InetAddress.getByName(ThreadScan.hostname.getText();catch(UnknownHostException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的域名或地址不可達(dá)! ");ThreadScan.DLGError.setVisible(true);return;/* *判斷端口號(hào)的有效性 */tryminPort=Integer.parseInt(ThreadScan.minPort.getText();maxPort=Integer.parseInt(ThreadScan.ma

39、xPort.getText();maxThread=Integer.parseInt(ThreadScan.maxThread.getText();catch(NumberFormatException e)ThreadScan.DLGINFO.setText("錯(cuò)誤的端口號(hào)或線(xiàn)程數(shù)!端口號(hào)和線(xiàn)程數(shù)必須為整數(shù)!");ThreadScan.DLGError.setVisible(true);return;/* *判斷最小端口號(hào)的有效圍 *判斷條件:大于0且小于65535,最大端口應(yīng)大于最小端口 */if(minPort<0 | minPort>65535 | mi

40、nPort>maxPort)ThreadScan.DLGINFO.setText("最小端口必須是0-65535并且小于最大端口的整數(shù)!");ThreadScan.DLGError.setVisible(true);return;elseTCPThread.MIN_port=minPort;/* *判斷最大端口號(hào)的有效圍 *判斷條件:大于0且小于65535,最大端口應(yīng)大于最小端口 */if(maxPort<0 | maxPort>65535 | maxPort<minPort)ThreadScan.DLGINFO.setText("最大端口

41、必須是0-65535并且大于最小端口的整數(shù)!");ThreadScan.DLGError.setVisible(true);return;elseTCPThread.MAX_port=maxPort;/* *判斷線(xiàn)程數(shù)量的有效圍 *判斷條件:大于1且小于200 */if(maxThread<1 | maxThread>200)ThreadScan.DLGINFO.setText("線(xiàn)程數(shù)為1-200的整數(shù)! ");ThreadScan.DLGError.setVisible(true);return;ThreadScan.Result.append(&

42、quot;線(xiàn)程數(shù) "+ThreadScan.maxThread.getText()+"n");/啟動(dòng)線(xiàn)程for(int i=0;i<maxThread;i+)new TCPThread("T" + i,i).start();/* *實(shí)現(xiàn)錯(cuò)誤提示框中的“確定”按鈕功能 */class OKAction implements ActionListenerpublic void actionPerformed (ActionEvent e)ThreadScan.DLGError.dispose();多線(xiàn)程類(lèi)文件:import .*;import

43、 java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TCPThread extends Threadpublic static InetAddress hostAddress;/最小的端口號(hào)public static int MIN_port;/最大的端口號(hào)public static int MAX_port;/線(xiàn)程總數(shù)private int threadnum; /查詢(xún)方式:0為ip;1為主機(jī)名public static int type;/ip地址前3位public s

44、tatic int ip1;/ip地址46位public static int ip2;/ip地址79位public static int ip3;/起始ip地址的最后4位public static int ipstart;/結(jié)束ip地址的最后4位public static int ipend;/完整的ip地址public static String ipAll;/掃描的主機(jī)名稱(chēng)或ipString hostname = ""/端口的類(lèi)別String porttype = "0"/* *構(gòu)造函數(shù) */public TCPThread(String name

45、,int threadnum)super(name); this.threadnum = threadnum; /* *運(yùn)行函數(shù) */public void run() /ip地址int h = 0;/端口號(hào)int i = 0;Socket theTCPsocket;/根據(jù)ip地址進(jìn)行掃描if(type = 0)/ip地址循環(huán)掃描for(h = ipstart; h <=ipend; h+)/組成完整的ip地址ipAll = "" + ip1 + "." + ip2 + "." + ip3 + "." + h

46、;hostname = ipAll;try/在給定主機(jī)名的情況下確定主機(jī)的 IP 地址hostAddress=InetAddress.getByName(ipAll);catch(UnknownHostException e)/不同的端口循環(huán)掃描for (i = MIN_port+threadnum; i < MAX_port + Integer.parseInt(ThreadScan.maxThread.getText(); i += Integer.parseInt(ThreadScan.maxThread.getText()trytheTCPsocket=new Socket(ho

47、stAddress,i);theTCPsocket.close();ThreadScan.Result.append(hostname+":"+i);/判斷端口的類(lèi)別switch(i)case 21:porttype = "(FTP)"break;case 23:porttype = "(TELNET)"break;case 25:porttype = "(SMTP)"break; case 80:porttype = "(HTTP)"break;case 110:porttype = &quo

48、t;(POP)"break;case 139:porttype = "(netBIOS)"break;case 1433:porttype = "(SQL Server)"break;case 3389:porttype = "(Terminal Service)"break;case 443:porttype = "(HTTPS)"break;case 1521:porttype = "(Oracle)"break;/端口沒(méi)有特定類(lèi)別if(porttype.equals("0")T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論