将端口添加到Ping

时间:2010-09-08 11:47:53

标签: vb.net

我正在使用VB.net来ping域/ IP,使用以下代码;

My.Computer.Network.Ping(Address, 1000)

我现在想在域/ IP中添加一个端口 - 例如google.co.uk:21

我该怎么做?

3 个答案:

答案 0 :(得分:6)

您无法ping通端口,但可以尝试使用TCP / IP或UDP连接到特定端口。端口概念属于协议栈的传输层(TCP或UDP),而ping位于较低的网络层(ICMP协议)。

答案 1 :(得分:3)

您可以使用此功能测试端口是否“打开”:

Function CheckPortOpen(ByVal hostname As String, ByVal portnum As Integer) As Boolean

    Dim ipa As IPAddress = CType(Dns.GetHostAddresses(hostname)(0), IPAddress)

    Try
        Dim sock As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        Console.WriteLine("Testing " & hostname & ":" & portnum)
        sock.Connect(ipa, portnum)
        If (sock.Connected = True) Then
            sock.Close()
            sock = Nothing
            Return True
       End If

    Catch sx As SocketException
        If sx.ErrorCode = 10061 Then
            Return False
        Else
            Return Nothing
        End If

    End Try

End Function

答案 2 :(得分:2)

你没有,因为这不是ping的工作方式。 ICMP协议中没有端口的概念。

如果要查看服务器上是否已打开端口,则必须尝试使用​​TCP或UDP连接到该端口(具体取决于该服务器所需的协议)。没有其他方法可以检查开放端口。