在线时间:8:00-16:00
132-9538-2358
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespace PortScanner { class Program { //已扫描端口数目 internal static int scannedCount = 0; //正在运行的线程数目 internal static int runningThreadCount = 0; //打开的端口数目 internal static List<int> openedPorts = new List<int>(); //起始扫描端口 static int startPort = 1; //结束端口号 static int endPort = 500; //最大工作线程数 static int maxThread = 10; static void Main(string[] args) { //接收传入参数一作为要扫描的主机 string host = "192.168.0.1"; //接收传入参数二作为端口扫描范围,如1-4000 string portRange = "1-400"; startPort = int.Parse(portRange.Split('-')[0].Trim()); endPort = int.Parse(portRange.Split('-')[1].Trim()); for (int port = startPort; port < endPort; port++) { //创建扫描类 Scanner scanner = new Scanner(host, port); Thread thread = new Thread(new ThreadStart(scanner.Scan)); thread.Name = port.ToString(); thread.IsBackground = true; //启动扫描线程 thread.Start(); runningThreadCount++; Thread.Sleep(10); //循环,直到某个线程工作完毕才启动另一新线程,也可以叫做推拉窗技术 while (runningThreadCount >= maxThread) ; } //空循环,直到所有端口扫描完毕 while (scannedCount + 1 < (endPort - startPort)) ; Console.WriteLine(); Console.WriteLine(); //输出结果 Console.WriteLine("Scan for host: {0} has been completed , /n total {1} ports scanned, /nopened ports :{2}", host, (endPort - startPort), openedPorts.Count); foreach (int port in openedPorts) Console.WriteLine("/tPort: {0} is open", port.ToString().PadLeft(6)); } } //扫描类 class Scanner { string m_host; int m_port; public Scanner(string host, int port) { m_host = host; m_port = port; } public void Scan() { //我们直接使用比较高级的TcpClient类 TcpClient tc = new TcpClient(); //设置超时时间 tc.SendTimeout = tc.ReceiveTimeout = 2000; try { //Console.Write("Checking port: {0}", m_port); //尝试连接 tc.Connect(m_host, m_port); if (tc.Connected) { //如果连接上,证明此端口为开放状态 Console.WriteLine("Port {0} is Open", m_port.ToString().PadRight(6)); Program.openedPorts.Add(m_port); } } catch (System.Net.Sockets.SocketException e) { //容错处理 Console.WriteLine("Port {0} is closed", m_port.ToString().PadRight(6)); //Console.WriteLine(e.Message); } finally { tc.Close(); tc = null; Program.scannedCount++; Program.runningThreadCount--; //Console.WriteLine(Program.scannedCount); } } } }
评论
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
请发表评论