2010-09-08 8 views
4

J'utilise VB.net pour faire un ping sur un domaine/IP, en utilisant le code suivant;Ajouter un port à un ping

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

Je veux maintenant ajouter un port au domaine/IP - google.co.uk:21 par exemple

Comment puis-je aller à ce sujet?

Répondre

6

Vous ne pouvez pas exécuter une commande ping sur un port, mais vous pouvez essayer de vous connecter à un port spécifique en utilisant TCP/IP ou UDP. Le concept de port appartient à la couche de transport de la pile de protocole (TCP ou UDP) tandis que le ping est à la couche réseau inférieure (le protocole ICMP).

+0

Ahh merci pour votre aide, je préfère coder et la conception de l'interface graphique, et ont aucun sens de TCP/IP, etc. Merci vous pile débordement !! –

2

Vous n'avez pas, parce que ce n'est pas comment le ping fonctionne. Il n'y a pas de concept de port dans le protocole ICMP.

Si vous voulez voir si un port est ouvert sur un serveur, vous devez essayer de vous connecter en utilisant TCP ou UDP (selon le protocole attendu pour ce serveur). Il n'y a pas d'autre moyen de vérifier un port ouvert.

2

Vous pouvez tester si un port est « ouvert » en utilisant cette fonction:

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