How can I programmatically determine if I have access to a server with a given IP address using C#?
views:
2659answers:
4
A:
Assuming you mean through a TCP socket:
IPAddress IP = new IPAddress();
if(IP.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
}
}
For more information: http://msdn.microsoft.com/en-us/library/4xzx2d41.aspx?ppud=4
Geoffrey Chetwood
2008-09-25 22:34:37
+1
A:
Declare string address and int port and you are ready to connect through the TcpClient class.
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();
}
Tigraine
2008-09-25 22:39:39
A:
This should do it
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;
}
Learning
2008-09-25 22:40:29
+2
A:
You could use the Ping class (.net 2.0 and above)
Ping x = new Ping(); PingReply reply = x.Send(IPAddress.Parse("127.0.0.1")); if(reply.Status == IPStatus.Success) Console.WriteLine("Address is accessible");
You might want to use the asyunchronous methods in a production system to allow cancelling, etc.
Keith Moore
2008-09-26 01:26:38