Juste un petit contrôle de bon sens ici.
Pouvez-vous faire un ping sur un port spécifique d'une machine, et si oui, pouvez-vous fournir un exemple ?
Je cherche quelque chose comme ping ip address portNum
.
Juste un petit contrôle de bon sens ici.
Pouvez-vous faire un ping sur un port spécifique d'une machine, et si oui, pouvez-vous fournir un exemple ?
Je cherche quelque chose comme ping ip address portNum
.
Voici une application 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();
}
}
Non.
Il n'y a aucune garantie que le service fonctionnant sur le port comprenne le ping. Cela soulève également la question de savoir quelle "saveur" de port vous souhaitez utiliser pour le ping, TCP ou UDP ? Puisque le "protocole" ping n'utilise ni l'un ni l'autre (ping est implémenté en utilisant le protocole ICMP ), cela n'a pas beaucoup de sens.
C'est le seule solution qui fonctionne pour les VPN avec la machine cliente étant Windows Vista ou Windows 7 car les autres réponses énumérées ne fonctionnent tout simplement pas. Cette réponse a été précédemment supprimée et n'aurait pas dû l'être, car il s'agit de la seule solution pour un cas courant dans le monde réel. Comme il n'y a pas d'appel possible pour la suppression, je la réaffiche pour éviter aux autres la frustration que j'ai eue en essayant d'utiliser les autres réponses.
L'exemple ci-dessous trouve les IPs sur le VPN qui ont VNC/port 5900 ouvert avec le client fonctionnant sur Windows 7.
Un court script Python (v2.6.6) pour scanner une liste donnée d'IPs et de Ports :
from socket import *
fTimeOutSec = 5.0
sNetworkAddress = '192.168.1'
aiHostAddresses = range(1,255)
aiPorts = [5900]
setdefaulttimeout(fTimeOutSec)
print "Starting Scan..."
for h in aiHostAddresses:
for p in aiPorts:
s = socket(AF_INET, SOCK_STREAM)
address = ('%s.%d' % (sNetworkAddress, h))
result = s.connect_ex((address,p))
if ( 0 == result ):
print "%s:%d - OPEN" % (address,p)
elif ( 10035 == result ):
#do nothing, was a timeout, probably host doesn't exist
pass
else:
print "%s:%d - closed (%d)" % (address,p,result)
s.close()
print "Scan Completed."
Les résultats sont les suivants :
Starting Scan...
192.168.1.1:5900 - closed (10061)
192.168.1.7:5900 - closed (10061)
192.168.1.170:5900 - OPEN
192.168.1.170:5900 - closed (10061)
Scan Completed.
Les quatre variables du haut doivent être modifiées pour correspondre au délai d'attente, au réseau, aux hôtes et aux ports nécessaires. 5.0 secondes sur mon VPN semble être suffisant pour fonctionner correctement de manière constante, mais ne donne pas (toujours) des résultats précis. Sur mon réseau local, 0,5 était plus que suffisant.
Il semble que CMCDragonkai La suggestion judicieuse de nping n'a pas été transformée en une réponse appropriée.
nping example.com --tcp-connect -p 80,443
Je suis sûr que la sonde check_tcp de Nagios fait ce que vous voulez. Elles peuvent être trouvées aquí et bien que conçus pour être utilisés dans un contexte Nagios, ce sont tous des programmes autonomes.
$ ./check_tcp -H host -p 22
TCP OK - 0.010 second response time on port 22|time=0.009946s;0.000000;0.000000;0.000000;10.000000
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
2 votes
Pour Windows cette question peut être vérifié