Question Ping sur un port spécifique


Juste un rapide contrôle de santé mentale ici.

Pouvez-vous envoyer une requête ping à un port spécifique d'une machine, et si oui, pouvez-vous fournir un exemple?

Je cherche quelque chose comme ping ip address portNum.


580
2017-10-08 09:57


origine


Pour les fenêtres cette question peut être vérifié - npocmaka


Réponses:


Vous ne pouvez pas cingler les ports, car Ping utilise ICMP qui n'a pas le concept de ports. Les ports appartiennent à la protocoles de couche de transport comme TCP et UDP. Cependant, vous pouvez utiliser nmap pour voir si les ports sont ouverts ou non

nmap -p 80 example.com

Modifier: Comme l'a dit Flokra, nmap est plus qu'un simple ping-pour-ports-thingy. C'est le meilleur ami des auditeurs de sécurité et des pirates informatiques et il propose une multitude d'options intéressantes. Vérifiez la doc pour tous les drapeaux possibles.


628
2017-10-08 10:00



Vous voudrez peut-être ajouter -PN pour ignorer la découverte de l'hôte, habituellement effectuée par nmap avant de tester le port donné. - flokra
Pour épargner quelques ennuis à certaines personnes: nmap / can / be installed on windows from lien (ou google nmap windows), MAIS cela ne fonctionne pas sur les VPN. PaPing n'a pas semblé être capable de scanner une plage d'adresses. J'ai posté le script Python ci-dessous qui fonctionnera sur un réseau privé virtuel pour analyser une plage de ports sur une plage d'adresses.
Pour d'autres: nmap n'existe pas sous Mac OS X, vous pouvez installer nmap via homebrew brew install nmap ou MacPorts. - Highway of Life
nping convient mieux à cette tâche que nmap. nping fait partie de la distribution nmap. - CMCDragonkai
Mac OSX a «Utilitaire de réseau» qui a un onglet de scanner de port - Shanimal


Ouvrez une session telnet sur le port spécifique, par exemple:

# telnet google.com 80
Trying 74.125.226.48...
Connected to google.com.
Escape character is '^]'.

Pour fermer votre session, appuyez sur Ctrl+].


168
2017-10-08 10:01



netcatfonctionne aussi très bien et est moins prolixe. - petrus
Telnet fonctionne bien pour cela si le port est un port TCP. - Falcon Momot
netcat fonctionne aussi avec UDP (nc -u) - Tsvetomir Dimitrov
Pour les utilisateurs de Mac - netcat est maintenant intégré à MacOS HighSierra, dans lequel telnet peut être installé à partir de HomeBrew brew install telnet - sandiejat


Vous pouvez utiliser PaPing:

http://code.google.com/p/paping

C:\>paping.exe www.google.com -p 80 -c 4
paping v1.5.1 - Copyright (c) 2010 Mike Lovell

Connecting to www.l.google.com [209.85.225.147] on TCP 80:

Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=25.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80

Connection statistics:
        Attempted = 4, Connected = 4, Failed = 0 (0.00%)
Approximate connection times:
        Minimum = 24.00ms, Maximum = 25.00ms, Average = 24.25ms

78
2017-09-03 04:23



Vous pouvez également utiliser le cryptage, qui prend beaucoup plus de temps et prend en charge les requêtes ping de certains services et ports.
Est-ce que cela peut être utilisé pour faire un ping sur n'importe quel port ou juste 80? - Luke Puplett
@LukePuplett vient de changer le nombre 80 dans l'exemple. Exécutez-le en tapant paping.exe <nomhôte / IP> -p <numéro de port> -c <nombre de tentatives> - David Costa
Fantastique! Est-ce que quelqu'un sait s'il peut afficher des statistiques à mi-chemin comme ping peut avec Ctrl+Break? - Allon Guralnek
Fonctionnement >C:\paping_1.5.5_windows\paping.exe www.google.com -p 80 -c 4 de la ligne de commande donne l'erreur the program can't start because MSVCP100D.dll is missing from your computer - Timo Huovinen


$ nc -vz google.com 80
Connection to google.com 80 port [tcp/http] succeeded!

74
2018-04-10 01:55



Utiliser avec time comme dans time nc -vz www.example.com 80 et vous aurez aussi une sorte de RTT. - xebeche
Solution unique fonctionnant sur les instances Amazon EC2 sans aucune installation. - Masadow
Cette commande fonctionne sur un Raspberry Pi (distribution Linux) - John M
qu'est-ce que -z? ncat 6.40 sur rhel7 donne une option inconnue - Tagar
@Tagar selon l'aide de la version Ubuntu, -z est le mode Zero-I / O, utilisé pour la numérisation. - Ben Mordecai


Si vous êtes sur une installation Windows avec powershell v4 ou plus récent, vous pouvez utiliser le module test-netconnection powershell:

Test-NetConnection <host> -port <port>

Exemple:      Test-NetConnection example.com -port 80

Cette applet de commande a également l'alias tnc. Par exemple tnc example.com -port 80


61
2017-10-26 21:09



Cela devrait être la réponse acceptée, car c’est beaucoup plus facile et il n’est pas nécessaire d’installer quelque chose - Hakaishin
tnc mon dieu je pourrais me rappeler que - Chris Marisic


Non, vous ne pouvez pas, car ping utilise le Protocole ICMP, qui n’a même pas de concept de ports.


22
2017-10-08 10:00



Je suis presque sûr que l'utilisation de "ping" était métaphorique. - Luke Puplett


Essayer curl commande, comme:

$ curl host:port

Par exemple:

$ curl -s localhost:80 >/dev/null && echo Success. || echo Fail.
Success.

La commande ci-dessus reviendra Échouer sur un code d'état de sortie non nul. Dans certains cas particuliers, tels qu'une réponse vide ou mal formée (voir man curl), vous souhaiterez peut-être gérer des codes de sortie spécifiques avec succès, cochez cette case. poster pour une explication plus détaillée.


16
2017-11-01 00:11



J'aime ça parce que curl est présent par défaut sur CentOS, je n'ai donc rien à installer. - bdemarest
boucle travaillée sur un Raspberry Pi (distro Raspian) - John M
C'est de loin la solution la plus élégante et la plus universelle. Je l'ai légèrement modifié pour en faire un oneliner soigné: IP="<ip>" ; PORT="<port>" ; curl -s "$IP:$PORT" > /dev/null && echo "Success connecting to $IP on port $PORT." || echo "Failed to connect to $IP on port $PORT." - Lefty G Balogh


J'ai trouvé une solution plus simple en utilisant PsPing:

psping 192.168.2.2:5000

Cela fait partie de Windows Sysinternals.

PsPing implémente la fonctionnalité Ping, le ping TCP, la mesure de la latence et de la bande passante.


16
2017-12-12 19:49



PsPing vient également de l’équipe Microsoft SysInternal et pourrait donc être considéré comme un peu plus légitime s’il traite avec d’autres personnes plus orientées sur Microsoft. (Et a une meilleure fonctionnalité que le très vieux PortQry) - martyvis
Trouvé quelque chose de plus simple; cela ne nécessiterait aucun téléchargement ou installation. Test-NetConnection -ComputerName 192.168.2.2 -Port 5000 - Ayan Mullick


Sous Linux, vous pouvez utiliser hping mais il utilise TCP plutôt que ICMP.

hping example.com -S -V -p 80

13
2017-12-22 23:12



hping (hping3 dans mon Ubuntu) est excellent. Il répète périodiquement la sonde comme le fait le ping, et contrairement à la plupart des outils suggérés ici. Il teste également si le paquet passe et si le port est ouvert. Si c'est ouvert, vous obtenez flags=SA (c’est-à-dire SYN ACK), et s’il est fermé, vous obtenez flags=SR (c'est-à-dire SYN RST). Notez que vous n’avez probablement pas besoin du -V drapeau ici, mais vous avez besoin de sudo / root pour lancer hping. - mc0e
Excellent! Contrairement à beaucoup d’autres réponses, cela indique la latence RTT comme ping et pings jusqu'à arrêté. - Edward Anderson


Ping est très spécifique, mais si vous voulez vérifier si un port est ouvert ou non, et que vous utilisez une boîte Windows, alors PortQry est votre ami.

Je ne l'ai utilisé que pour tester les contrôleurs de domaine afin de détecter les problèmes de connectivité, mais cela a fonctionné à merveille et devrait donc fonctionner pour vous.


11
2017-10-08 10:06



PortQry fonctionne très bien et ne pèse que 140 Ko. Merci! - SCL
+1 PortQry est parfait pour tester localhost. - Chris Masterton
PortQry a été initialement publié en 1999/2000 par l'équipe MS Exchange, mais la version récente de MS semble l'avoir retardé en supprimant la possibilité d'interroger les ports distants (santé et sécurité). - Luke Puplett


Voici une application de console .NET rapide et sale:

    static void Main(string[] args)
    {
        string addressArgument = null, portArgument = null;

        System.Net.Sockets.TcpClient tcpClient = null;

        try
        {
            addressArgument = args[0];
            portArgument = args[1];

            int portNumber;
            portNumber = Int32.Parse(portArgument);

            tcpClient = new System.Net.Sockets.TcpClient();
            tcpClient.ReceiveTimeout = tcpClient.SendTimeout = 2000;


            IPAddress address;
            if (IPAddress.TryParse(args[0], out address))
            {
                var endPoint = new System.Net.IPEndPoint(address, portNumber);
                tcpClient.Connect(endPoint);
            }
            else
            {
                tcpClient.Connect(addressArgument, portNumber);
            }

            Console.WriteLine("Port {0} is listening.", portArgument);
        }
        catch (Exception e)
        {
            if (e is SocketException || e is TimeoutException)
            {
                Console.WriteLine("Not listening on port {0}.", portArgument);
            }
            else
            {
                Console.WriteLine("Usage:");
                Console.WriteLine("    portquery [host|ip] [port]");
            }
        }
        finally
        {
            if (tcpClient != null)
                tcpClient.Close();
        }
    }

7
2017-07-09 17:53