我使用VB.net來ping一個域/ IP,使用下面的代碼;添加端口到Ping
My.Computer.Network.Ping(Address, 1000)
我現在想要一個端口添加到域/ IP - e.g google.co.uk:21
我會如何呢?
我使用VB.net來ping一個域/ IP,使用下面的代碼;添加端口到Ping
My.Computer.Network.Ping(Address, 1000)
我現在想要一個端口添加到域/ IP - e.g google.co.uk:21
我會如何呢?
您無法ping通端口,但可以嘗試使用TCP/IP或UDP連接到特定端口。端口概念屬於協議棧的傳輸層(TCP或UDP),而ping位於較低的網絡層(ICMP協議)。
你不這樣做,因爲這不是ping的工作原理。在ICMP協議中沒有端口的概念。
如果要查看服務器上是否打開端口,則必須嘗試使用TCP或UDP(取決於該服務器預期的協議)連接到該端口。沒有其他方式來檢查一個開放的端口。
您可以測試端口被「打開」通過使用此功能:
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
啊感謝您的幫助,我更喜歡代碼和圖形用戶界面設計,並沒有TCP感/ IP等,謝謝你堆棧溢出! – 2010-09-08 11:56:30