偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何通過C#制作端口掃描器

安全 黑客攻防
端口掃描器相信大家并不陌生,不過這次本文主要教給大家通過C#語言自己制作端口掃描器。雖然只能夠掃描TCP端口,但是希望通過文章使廣大的管理員能夠在技術(shù)上有所提升。

面對互聯(lián)網(wǎng)、面對黑客相信廣大的管理員也好還是用戶也好都并不陌生。那你們一定聽說過端口掃描器這個名詞。XScanner和SuperScanner相信使用過端口掃描器的朋友并不陌生,那么你們有沒有想過自己嘗試制作端口掃描器呢?今天我們就為大家介紹一下,通過C#自己制作端口掃描器。

今天主要使用到的是System.Net和System.Threading名稱空間。
 

1

2using System;

3using System.Collections.Generic;

4using System.Text;

5

6using System.Net;

7using System.Net.Sockets;

8

9using System.Threading;

10

11namespace PortScanner

12{

13 class Program

14 {

15  //已掃描端口數(shù)目

16  internal static int scannedCount = 0;

17  //正在運行的線程數(shù)目

18  internal static int runningThreadCount = 0;

19  //打開的端口數(shù)目

20  internal static List<int> openedPorts = new List<int>();

21  //起始掃描端口

22  static int startPort = 1;

23  //結(jié)束端口號

24  static int endPort = 500;

25  //***工作線程數(shù)

26  static int maxThread = 100;

27  static void Main(string[] args)

28  {

29   //接收傳入?yún)?shù)一作為要掃描的主機

30   string host = args[0];

31   //接收傳入?yún)?shù)二作為端口掃描范圍,如1-4000

32   string portRange = args[1];

33   startPort = int.Parse(portRange.Split('-')[0].Trim());

34   endPort = int.Parse(portRange.Split('-')[1].Trim());

35

36   for (int port = startPort; port < endPort; port++)

37   {

38    //創(chuàng)建掃描類

39    Scanner scanner = new Scanner(host, port);

40    Thread thread = new Thread(new ThreadStart(scanner.Scan));

41    thread.Name = port.ToString();

42    thread.IsBackground = true;

43    //啟動掃描線程

44    thread.Start();

45

46    runningThreadCount++;

47

48    Thread.Sleep(10);

49    //循環(huán),直到某個線程工作完畢才啟動另一新線程,也可以叫做推拉窗技術(shù)

50    while (runningThreadCount >= maxThread) ;#p#

51   }

52

53   //空循環(huán),直到所有端口掃描完畢

54   while (scannedCount + 1 < (endPort - startPort)) ;

55

56    Console.WriteLine();

57    Console.WriteLine();

58    //輸出結(jié)果

59    Console.WriteLine("Scan for host: {0} has been completed , \n total {1} ports

scanned, \nopened ports :{2}",

60 host, (endPort - startPort), openedPorts.Count);

61

62   foreach (int port in openedPorts)

63    Console.WriteLine("\tPort: {0} is open", port.ToString().PadLeft(6));

64  }

65 }

66

67 //掃描類

68 class Scanner

69 {

70  string m_host;

71  int m_port;

72 

73  public Scanner(string host, int port)

74  {

75   m_host = host; m_port = port;

76  }

77

78  public void Scan()

79  {

80   //我們直接使用比較高級的TcpClient類

81   TcpClient tc = new TcpClient();

82   //設(shè)置超時時間

83   tc.SendTimeout = tc.ReceiveTimeout = 2000;

84   try

85   {

86    //Console.Write("Checking port: {0}", m_port);

87    //嘗試連接

88    tc.Connect(m_host, m_port);

89    if (tc.Connected)

90    {

91     //如果連接上,證明此商品為開放狀態(tài)

92     Console.WriteLine("Port {0} is Open", m_port.ToString().PadRight(6));

93     Program.openedPorts.Add(m_port);

94    }

95   }

96   catch (System.Net.Sockets.SocketException e)

97   {

98    //容錯處理

99    Console.WriteLine("Port {0} is closed", m_port.ToString().PadRight(6));

100    //Console.WriteLine(e.Message);

101   }

102   finally

103   {

104    tc.Close();

105    tc = null;

106    Program.scannedCount++;

107    Program.runningThreadCount--;

108

109    //Console.WriteLine(Program.scannedCount);

110  

111   }

112  }

113 }

114}

115

通過以上代碼我們就可以自己制作端口掃描器了,不過只能實現(xiàn)TCP端口掃描。

【編輯推薦】

  1. 端口掃描工具nmap使用介紹
  2. 網(wǎng)絡(luò)安全掃描工具Nessus
責(zé)任編輯:張啟峰 來源: 中國IT實驗室
相關(guān)推薦

2010-12-22 21:57:00

Angry IP Sc

2021-05-31 08:54:30

RustScanRust端口掃描器

2022-06-15 13:40:38

端口掃描工具開源工具

2009-09-28 11:05:29

Ruby端口掃描

2010-09-17 09:40:16

2020-12-14 10:32:28

Web安全工具多線程

2024-06-19 19:07:53

2021-01-10 08:14:01

Go語言TCP掃描器

2016-05-13 17:07:00

Docker安全

2013-01-10 09:19:53

2024-06-28 08:00:00

端口掃描安全

2015-11-11 14:08:07

2014-08-01 10:56:10

惡意軟件掃描器竊取數(shù)據(jù)

2010-09-17 16:16:28

2009-01-15 09:52:00

2009-11-18 09:59:41

2023-10-16 18:51:04

Masscan網(wǎng)絡(luò)安全

2011-01-11 10:29:46

2011-02-17 18:51:10

2009-03-25 11:21:02

點贊
收藏

51CTO技術(shù)棧公眾號