Методы C# для проверки порта на удаленном ПК

Чтобы проверить порт на удаленном компьютере с помощью C#, вы можете использовать различные методы. Вот несколько подходов:

  1. Класс TcpClient: Класс TcpClient в пространстве имен System.Net.Sockets позволяет вам установить TCP-соединение с удаленным компьютером и проверить, открыт ли порт. Вы можете использовать метод Connect() и обрабатывать любые исключения, чтобы определить состояние порта.
using System;
using System.Net.Sockets;
class Program
{
    static void Main()
    {
        string remoteIpAddress = "192.168.1.100";
        int port = 80;
        try
        {
            using (TcpClient client = new TcpClient())
            {
                client.Connect(remoteIpAddress, port);
                Console.WriteLine($"Port {port} is open on {remoteIpAddress}.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Port {port} is closed on {remoteIpAddress}. Error: {ex.Message}");
        }
    }
}
  1. Класс Socket. Класс Socket в пространстве имен System.Net.Sockets обеспечивает больший контроль над соединением сокета. Вы можете использовать метод Connect(), чтобы установить соединение и проверить его успешность.
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
    static void Main()
    {
        string remoteIpAddress = "192.168.1.100";
        int port = 80;
        try
        {
            IPAddress ipAddress = IPAddress.Parse(remoteIpAddress);
            IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port);
            using (Socket socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp))
            {
                socket.Connect(remoteEndPoint);
                Console.WriteLine($"Port {port} is open on {remoteIpAddress}.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Port {port} is closed on {remoteIpAddress}. Error: {ex.Message}");
        }
    }
}
  1. Класс Ping: хотя порт не проверяется напрямую, вы можете использовать класс Ping в пространстве имен System.Net.NetworkInformation, чтобы определить, доступен ли удаленный компьютер. Это может дать вам представление о том, открыт ли порт или закрыт.
using System;
using System.Net.NetworkInformation;
class Program
{
    static void Main()
    {
        string remoteIpAddress = "192.168.1.100";
        try
        {
            Ping ping = new Ping();
            PingReply reply = ping.Send(remoteIpAddress);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine($"Host {remoteIpAddress} is reachable.");
            }
            else
            {
                Console.WriteLine($"Host {remoteIpAddress} is unreachable.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}