如何检查远程IP和端口是不是可用?

Posted

技术标签:

【中文标题】如何检查远程IP和端口是不是可用?【英文标题】:How to check remote IP and Port is available?如何检查远程IP和端口是否可用? 【发布时间】:2014-05-19 04:34:59 【问题描述】:

我必须检查远程 IP 和端口是否可用。如果可用,它将移动到下一个表单。如果不可用,它应该进入初始状态。我尝试使用这个

while (true)

    IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
    -------
    -------
    -------

我正在展示示例编码。它正在检查本地 IP 和端口并移动到下一个表单。它将检查本地端口和 IP 是否可用。如果端口和 IP 不可用,它将进入初始阶段并且它正在工作很好。我必须检查远程端口和 IP。

【问题讨论】:

【参考方案1】:

使用.NET 的Ping 类来检查系统是否已启动并连接,使用PortScanner 来检查端口是否打开。检查这些链接以进一步阅读和探索。

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping%28v=vs.110%29.aspx

http://social.msdn.microsoft.com/Forums/vstudio/en-US/8e4410bd-307f-4264-9575-cd9882653945/help-with-portscanner-in-c?forum=csharpgeneral

public static bool PingHost(string hostUri, int portNumber)

    try
    
        using (var client = new TcpClient(hostUri, portNumber))
            return true;
    
    catch (SocketException ex)
    
        MessageBox.Show("Error pinging host:'" + hostUri + ":" + portNumber.ToString() + "'");
        return false;
    

【讨论】:

谢谢,这正是我想要的!只有一个想法:TcpClient 实现了IDisposable,所以你可以这样做:using (TcpClient client = new TcpClient(_adress, port)) return true; 谢谢,这正是我想要的!

以上是关于如何检查远程IP和端口是不是可用?的主要内容,如果未能解决你的问题,请参考以下文章

利用java代码如何检测某端口号是不是可用

如何检查客户端 JavaScript 中的端口可用性?

java中如何检测本机指定的UDP服务端口是不是被占用?并且自动分配一个可用udp端口;

linux系统安装SNMP(可用)

无法连接:SQLSERVER不可用或不存在。

nas请求网络超时,错误2001