zoukankan      html  css  js  c++  java
  • C# 查看计算机端口使用状态

    using System.Net.NetworkInformation;
    
    /// <summary>
    /// 获取第一个可用的端口号
    /// </summary>
    /// <returns></returns>
    public static int GetFirstAvailablePort()
    {
        int MAX_PORT = 6000; //系统tcp/udp端口数最大是65535           
        int BEGIN_PORT = 5000;//从这个端口开始检测
    
        for (int i = BEGIN_PORT; i < MAX_PORT; i++)
        {
            if (PortIsAvailable(i)) return i;
        }
    
        return -1;
    }
    
    /// <summary>
    /// 获取操作系统已用的端口号
    /// </summary>
    /// <returns></returns>
    public static IList PortIsUsed()
    {
        //获取本地计算机的网络连接和通信统计数据的信息
        IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
    
        //返回本地计算机上的所有Tcp监听程序
        IPEndPoint[] ipsTCP = ipGlobalProperties.GetActiveTcpListeners();
    
        //返回本地计算机上的所有UDP监听程序
        IPEndPoint[] ipsUDP = ipGlobalProperties.GetActiveUdpListeners();
    
        //返回本地计算机上的Internet协议版本4(IPV4 传输控制协议(TCP)连接的信息。
        TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
    
        IList allPorts = new ArrayList();
        foreach (IPEndPoint ep in ipsTCP) allPorts.Add(ep.Port);
        foreach (IPEndPoint ep in ipsUDP) allPorts.Add(ep.Port);
        foreach (TcpConnectionInformation conn in tcpConnInfoArray) allPorts.Add(conn.LocalEndPoint.Port);
    
        return allPorts;
    }
    
    /// <summary>
    /// 检查指定端口是否已用
    /// </summary>
    /// <param name="port"></param>
    /// <returns></returns>
    public static bool PortIsAvailable(int port)
    {
        bool isAvailable = true;
    
        IList portUsed = PortIsUsed();
    
        foreach (int p in portUsed)
        {
            if (p == port)
            {
                isAvailable = false; break;
            }
        }
    
        return isAvailable;
    }
  • 相关阅读:
    Windows JScript 在 游览器 中运行 调试 Shell 文件系统
    autohotkey 符号链接 软连接 symbolink
    软链接 硬链接 测试
    SolidWorks 修改 基准面 标准坐标系
    手机 路径 WebDAV 映射 驱动器
    Win10上手机路径
    explorer 命令行
    单位公司 网络 封锁 屏蔽 深信 AC
    cobbler自动化部署原理篇
    Docker四种网络模式
  • 原文地址:https://www.cnblogs.com/Kconnie/p/4675153.html
Copyright © 2011-2022 走看看