王國慶 发表于 2025-1-10 08:26:01

C# WinForm 检查目的IP端口是否可连接


[*]一个小工具。
https://img2024.cnblogs.com/blog/2440132/202501/2440132-20250110091036218-1509578231.gif
 

[*]WinForm UI Code
namespace IPPort_CheckTool
{
    partial class MainForm
    {
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private System.ComponentModel.IContainer components = null;

      /// <summary>
      /// 清理所有正在使用的资源。
      /// </summary>
      /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
      protected override void Dispose(bool disposing)
      {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
      }

      #region Windows 窗体设计器生成的代码

      /// <summary>
      /// 设计器支持所需的方法 - 不要修改
      /// 使用代码编辑器修改此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.txt_Time = new System.Windows.Forms.Label();
            this.txt_CoreNum = new System.Windows.Forms.Label();
            this.txt_Active = new System.Windows.Forms.Label();
            this.txt_NoActive = new System.Windows.Forms.Label();
            this.btn_Start = new System.Windows.Forms.Button();
            this.label3 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.txt_PortEnd = new System.Windows.Forms.TextBox();
            this.txt_PortStart = new System.Windows.Forms.TextBox();
            this.txt_IP = new System.Windows.Forms.TextBox();
            this.listBox_NoActive = new System.Windows.Forms.ListBox();
            this.listBox_ActivePort = new System.Windows.Forms.ListBox();
            this.progressBar = new System.Windows.Forms.ProgressBar();
            this.groupBox1.SuspendLayout();
            this.SuspendLayout();
            //
            // groupBox1
            //
            this.groupBox1.Controls.Add(this.progressBar);
            this.groupBox1.Controls.Add(this.txt_Time);
            this.groupBox1.Controls.Add(this.txt_CoreNum);
            this.groupBox1.Controls.Add(this.txt_Active);
            this.groupBox1.Controls.Add(this.txt_NoActive);
            this.groupBox1.Controls.Add(this.btn_Start);
            this.groupBox1.Controls.Add(this.label3);
            this.groupBox1.Controls.Add(this.label2);
            this.groupBox1.Controls.Add(this.label1);
            this.groupBox1.Controls.Add(this.txt_PortEnd);
            this.groupBox1.Controls.Add(this.txt_PortStart);
            this.groupBox1.Controls.Add(this.txt_IP);
            this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top;
            this.groupBox1.Location = new System.Drawing.Point(3, 3);
            this.groupBox1.Margin = new System.Windows.Forms.Padding(5);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Padding = new System.Windows.Forms.Padding(5);
            this.groupBox1.Size = new System.Drawing.Size(1058, 127);
            this.groupBox1.TabIndex = 0;
            this.groupBox1.TabStop = false;
            this.groupBox1.Text = "配置:";
            //
            // txt_Time
            //
            this.txt_Time.AutoSize = true;
            this.txt_Time.ForeColor = System.Drawing.Color.Green;
            this.txt_Time.Location = new System.Drawing.Point(844, 101);
            this.txt_Time.Name = "txt_Time";
            this.txt_Time.Size = new System.Drawing.Size(74, 21);
            this.txt_Time.TabIndex = 10;
            this.txt_Time.Text = "耗时:0s";
            //
            // txt_CoreNum
            //
            this.txt_CoreNum.AutoSize = true;
            this.txt_CoreNum.ForeColor = System.Drawing.Color.Green;
            this.txt_CoreNum.Location = new System.Drawing.Point(610, 101);
            this.txt_CoreNum.Name = "txt_CoreNum";
            this.txt_CoreNum.Size = new System.Drawing.Size(120, 21);
            this.txt_CoreNum.TabIndex = 9;
            this.txt_CoreNum.Text = "CPU核心总数:0";
            //
            // txt_Active
            //
            this.txt_Active.AutoSize = true;
            this.txt_Active.ForeColor = System.Drawing.Color.Green;
            this.txt_Active.Location = new System.Drawing.Point(389, 101);
            this.txt_Active.Name = "txt_Active";
            this.txt_Active.Size = new System.Drawing.Size(119, 21);
            this.txt_Active.TabIndex = 8;
            this.txt_Active.Text = "激活端口总数:0";
            //
            // txt_NoActive
            //
            this.txt_NoActive.AutoSize = true;
            this.txt_NoActive.Location = new System.Drawing.Point(3, 101);
            this.txt_NoActive.Name = "txt_NoActive";
            this.txt_NoActive.Size = new System.Drawing.Size(135, 21);
            this.txt_NoActive.TabIndex = 7;
            this.txt_NoActive.Text = "未激活端口总数:0";
            //
            // btn_Start
            //
            this.btn_Start.Location = new System.Drawing.Point(915, 30);
            this.btn_Start.Name = "btn_Start";
            this.btn_Start.Size = new System.Drawing.Size(123, 56);
            this.btn_Start.TabIndex = 6;
            this.btn_Start.Text = "开始测试端口是否激活";
            this.btn_Start.UseVisualStyleBackColor = true;
            this.btn_Start.Click += new System.EventHandler(this.btn_Start_Click);
            //
            // label3
            //
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(530, 41);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(78, 21);
            this.label3.TabIndex = 5;
            this.label3.Text = "结束端口:";
            //
            // label2
            //
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(252, 41);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(78, 21);
            this.label2.TabIndex = 4;
            this.label2.Text = "开始端口:";
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(23, 41);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(29, 21);
            this.label1.TabIndex = 3;
            this.label1.Text = "IP:";
            //
            // txt_PortEnd
            //
            this.txt_PortEnd.Location = new System.Drawing.Point(633, 41);
            this.txt_PortEnd.Name = "txt_PortEnd";
            this.txt_PortEnd.Size = new System.Drawing.Size(150, 29);
            this.txt_PortEnd.TabIndex = 2;
            //
            // txt_PortStart
            //
            this.txt_PortStart.Location = new System.Drawing.Point(355, 41);
            this.txt_PortStart.Name = "txt_PortStart";
            this.txt_PortStart.Size = new System.Drawing.Size(150, 29);
            this.txt_PortStart.TabIndex = 1;
            //
            // txt_IP
            //
            this.txt_IP.Location = new System.Drawing.Point(77, 41);
            this.txt_IP.Name = "txt_IP";
            this.txt_IP.Size = new System.Drawing.Size(150, 29);
            this.txt_IP.TabIndex = 0;
            //
            // listBox_NoActive
            //
            this.listBox_NoActive.Dock = System.Windows.Forms.DockStyle.Left;
            this.listBox_NoActive.ForeColor = System.Drawing.Color.Gray;
            this.listBox_NoActive.FormattingEnabled = true;
            this.listBox_NoActive.ItemHeight = 21;
            this.listBox_NoActive.Location = new System.Drawing.Point(3, 130);
            this.listBox_NoActive.Name = "listBox_NoActive";
            this.listBox_NoActive.Size = new System.Drawing.Size(383, 548);
            this.listBox_NoActive.TabIndex = 1;
            //
            // listBox_ActivePort
            //
            this.listBox_ActivePort.Dock = System.Windows.Forms.DockStyle.Fill;
            this.listBox_ActivePort.ForeColor = System.Drawing.Color.Green;
            this.listBox_ActivePort.FormattingEnabled = true;
            this.listBox_ActivePort.ItemHeight = 21;
            this.listBox_ActivePort.Location = new System.Drawing.Point(386, 130);
            this.listBox_ActivePort.Name = "listBox_ActivePort";
            this.listBox_ActivePort.Size = new System.Drawing.Size(675, 548);
            this.listBox_ActivePort.TabIndex = 2;
            //
            // progressBar
            //
            this.progressBar.Location = new System.Drawing.Point(798, 41);
            this.progressBar.Name = "progressBar";
            this.progressBar.Size = new System.Drawing.Size(100, 29);
            this.progressBar.TabIndex = 11;
            //
            // MainForm
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(1064, 681);
            this.Controls.Add(this.listBox_ActivePort);
            this.Controls.Add(this.listBox_NoActive);
            this.Controls.Add(this.groupBox1);
            this.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.Margin = new System.Windows.Forms.Padding(5);
            this.Name = "MainForm";
            this.Padding = new System.Windows.Forms.Padding(3);
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Hello!";
            this.groupBox1.ResumeLayout(false);
            this.groupBox1.PerformLayout();
            this.ResumeLayout(false);

      }

      #endregion

      private System.Windows.Forms.GroupBox groupBox1;
      private System.Windows.Forms.Label label1;
      private System.Windows.Forms.TextBox txt_PortEnd;
      private System.Windows.Forms.TextBox txt_PortStart;
      private System.Windows.Forms.TextBox txt_IP;
      private System.Windows.Forms.Label label2;
      private System.Windows.Forms.Label label3;
      private System.Windows.Forms.Button btn_Start;
      private System.Windows.Forms.ListBox listBox_NoActive;
      private System.Windows.Forms.ListBox listBox_ActivePort;
      private System.Windows.Forms.Label txt_NoActive;
      private System.Windows.Forms.Label txt_Active;
      private System.Windows.Forms.Label txt_CoreNum;
      private System.Windows.Forms.Label txt_Time;
      private System.Windows.Forms.ProgressBar progressBar;
    }


[*] Main Code
using System;using System.Configuration;using System.Linq;using System.Net;using System.Net.NetworkInformation;using System.Net.Sockets;using System.Threading.Tasks;using System.Windows.Forms;namespace IPPort_CheckTool{    public partial class MainForm : Form    {      private Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);      private DateTime startTime;      private Task[] tasks;      private NotifyIcon notifyIcon;      public MainForm()      {            InitializeComponent();            var now = DateTime.Now;            this.Text = $"Hello 本日是{now.ToString("dddd")}哟
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C# WinForm 检查目的IP端口是否可连接