Question Comment puis-je tester une connexion à un serveur avec C # en fonction de l'adresse IP du serveur?


Comment puis-je par programmation déterminer si j'ai accès à un serveur avec une adresse IP donnée en utilisant C #?


12
2017-09-25 22:32


origine


Réponses:


En supposant que vous voulez dire via un socket TCP:

IPAddress IP;
if(IPAddress.TryParse("127.0.0.1",out IP)){
    Socket s = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream,
    ProtocolType.Tcp);

    try{   
        s.Connect(IPs[0], port);
    }
    catch(Exception ex){
        // something went wrong
    }
}

Pour plus d'informations: http://msdn.microsoft.com/en-us/library/4xzx2d41.aspx?ppud=4


9
2017-09-25 22:34



Vous pouvez utiliser la classe Ping (.net 2.0 et supérieur)

    Ping x = new Ping ();
    PingReply reply = x.Send (IPAddress.Parse ("127.0.0.1"));

    if (reply.Status == IPStatus.Success)
        Console.WriteLine ("L'adresse est accessible");

Vous voudrez peut-être utiliser les méthodes asyunchronous dans un système de production pour autoriser l'annulation, etc.


17
2017-09-26 01:26



Déclarez l'adresse de chaîne et le port int et vous êtes prêt à vous connecter via la classe TcpClient.

System.Net.Sockets.TcpClient client = new TcpClient();
try
{
    client.Connect(address, port);
    Console.WriteLine("Connection open, host active");
} catch (SocketException ex)
{
    Console.WriteLine("Connection could not be established due to: \n" + ex.Message);
}
finally
{
    client.Close();
}

7
2017-09-25 22:39



Cela devrait le faire

bool ssl;
ssl = false;
int maxWaitMillisec;
maxWaitMillisec = 20000;
int port = 555;

success = socket.Connect("Your ip address",port,ssl,maxWaitMillisec);


if (success != true) {

    MessageBox.Show(socket.LastErrorText);
    return;
}

-1
2017-09-25 22:40