65.9K
CodeProject is changing. Read more.
Home

Find an open port on a machine using C#

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.79/5 (12 votes)

Oct 13, 2011

CPOL
viewsIcon

69196

How to find an open port in a machine using C#.

Include these namespaces in your class:
using System.Net.NetworkInformation;
using System.Net;
The actual method to get the first open port from the system is as follows:
private string GetOpenPort()
{
  int PortStartIndex = 1000;
  int PortEndIndex = 2000;
  IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
  IPEndPoint[] tcpEndPoints = properties.GetActiveTcpListeners();
 
  List<int> usedPorts = tcpEndPoints.Select(p => p.Port).ToList<int>();
  int unusedPort = 0;

  for (int port = PortStartIndex; port < PortEndIndex; port++)
  {
     if (!usedPorts.Contains(port))
     {
        unusedPort = port;
        break;
     }
  }
  return unusedPort.ToString();
}