如何通过C#制作端口扫描器

面对互联网、面对黑客相信广大的管理员也好还是用户也好都并不陌生。那你们一定听说过端口扫描器这个名词。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  //已扫描端口数目

16  internal static int scannedCount = 0;

17  //正在运行的线程数目

18  internal static int runningThreadCount = 0;

19  //打开的端口数目

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

21  //起始扫描端口

22  static int startPort = 1;

23  //结束端口号

24  static int endPort = 500;

25  //***工作线程数

26  static int maxThread = 100;

27  static void Main(string[] args)

28  {

29   //接收传入参数一作为要扫描的主机

30   string host = args[0];

31   //接收传入参数二作为端口扫描范围,如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    //创建扫描类

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    //循环,直到某个线程工作完毕才启动另一新线程,也可以叫做推拉窗技术

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

51   }

52

53   //空循环,直到所有端口扫描完毕

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

55

56    Console.WriteLine();

57    Console.WriteLine();

58    //输出结果

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   //设置超时时间

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     //如果连接上,证明此商品为开放状态

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

通过以上代码我们就可以自己制作端口扫描器了,不过只能实现TCP端口扫描。

【编辑推荐】

  1. 端口扫描工具nmap使用介绍
  2. 网络安全扫描工具Nessus

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/132179.html<

(0)
管理的头像管理
上一篇2025-02-26 21:38
下一篇 2025-02-26 21:39

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注