static bool IsPortOpen(string host, int port)
{
try
{
IPAddress ipAddress = GetIpAddress(host);
if (ipAddress == null)
{
return false;
}
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
using Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remoteEP);
return true;
}
catch
{
return false;
}
}
static IPAddress GetIpAddress(string host)
{
try
{
IPAddress[] addressList = Dns.GetHostEntry(host).AddressList;
foreach (IPAddress iPAddress in addressList)
{
if (iPAddress.AddressFamily == AddressFamily.InterNetwork)
{
return iPAddress;
}
}
return null;
}
catch
{
return null;
}
}

通过控制台也可以确认
telnet 10.168.1.100 80
再次确认一下,没有启用的808端口。需要接近30s才返回结果

