web-dev-qa-db-fra.com

Comment puis-je déterminer si une machine est en ligne sans utiliser de ping?

J'avais l'habitude d'utiliser une application pouvant ping ou peut-être exécuter un balayage de port sur une machine, même si la machine a été configurée pour ne pas le permettre.

J'essaie actuellement de ping une machine distante sur notre WAN, mais j'ai configuré la machine pour ne pas autoriser Ping. Y a-t-il quelque chose de similaire à ping que je peux utiliser?

Encore une fois, une machine située dans une autre ville qui fait partie de notre WAN.

12
cop1152

Si vous utilisez XP/2003 + (ceci inclut Vista/2008/7), vous pouvez utiliser le win32_pingstatus . Les machines inchi-ci-utilisent le code de script est le seul système qui doit être XP/2003 +, et cela fonctionne comme à l'aide de ping.exe, seulement il n'utilise pas de ping.exe afin qu'il agisse comme une échappatoire sur votre réglage de sécurité qui ne permet pas l'exécution de ping.exe.

strComputer = "192.168.1.1"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * from Win32_PingStatus " & _
        "Where Address = '" & strComputer & "'")
For Each objItem in colItems
    If objItem.StatusCode = 0 Then 
        WScript.Echo "Reply received."          
    End If
Next

Voir l'article Guy Scripting pour plus d'informations sur l'utilisation Win32_PingStatus:

http://www.microsoft.com/technet/scriptCenter/resources/qanda/sept04/hey0914.mspx

4
mrTomahawk

Vous pouvez Telnet sur un port TCP ouvert sur la machine. Par exemple, si la machine est un serveur Web et que le port 80 est ouvert, juste:

telnet ip.ad.dre.ss 80

Cela fonctionnera même sur des ports cryptés (bien que vous ne puissiez pas comprendre les données)

Certains autres ports à essayer sont:

  • 443 pour un serveur HTTPS
  • 22 pour ssh

(Il existe une liste de ports/services dans / etc/services sur des machines Linux)

15
Brent

Ping est ICMP, si vous avez bloqué ICMP, vous ne pouvez pas ping.

Vous pourriez toujours être capable de tester TCP ou des ports UDP si vous acceptez les connexions TCP/UDP.

Si vous exécutez votre test sur des conteneurs, qui manquent de ping, de NC, de Telnet et d'autres outils, vous pouvez utiliser ce truc:

(echo >/dev/tcp/${Host}/${port}) &>/dev/null && echo "open" || echo "closed"

Cela tentera de se connecter via TCP/UDP via le périphérique (WOW, je sais) et echo "Ouvrir" si le port est ouvert ou "fermé" s'il est fermé.

Il sera suspendu pendant un moment avant de faire écho à "fermer" quand c'est le cas.

6
David Rz Ayala

Exécutez un agent SNMP sur la machine distante et utilisez un gestionnaire pour lire l'une des valeurs de la MIB standard.

4
user640

Si vous n'avez pas de pare-feu et de routeurs de la manière, c'est-à-dire que si vous êtes sur le même segment que l'hôte que vous essayez de vérifier - la plupart des solutions ci-dessus sont un peu exhaustif dans l'OMHO.

Peu importe le port que vous vous connectez et, en fait, si vous vous connectez à un port qui est peu susceptible d'avoir un service de fonctionnement, vous pouvez obtenir le travail sans être détecté.

Comment?

Vous pouvez utiliser n'importe quel outil que vous aimez, mais nous pouvons simplement utiliser Telnet ...

% telnet <Host> 313373
Trying 10.211.55.3...
telnet: connect to address 10.211.55.3: Connection refused
telnet: Unable to connect to remote Host
%

Cela devrait arriver immédiatement, à moins que l'hôte tombe des paquets. Ce qui se passe effectivement est que la pile TCP/IP sur l'hôte vous envoie un back A TCP segment avec le jeu de bits RST - I.E. Terminez votre paquet SYN.

Le fait que vous ayez reçu un paquet de la TVD signifie qu'il existe effectivement un accueil à l'autre extrémité et en tant que bonus - vous avez fait si non détecté (le TCP/IP n'avait aucune application de couche supérieure pour parler de cette connexion) .

Plutôt que telnet, j'utiliserais probablement quelque chose comme Scapy, écrivez quelque chose qui recherche le premier drapeau et que vous sachiez.

Juste pour compléter cela, s'il n'y a pas d'hôte sur la propriété intellectuelle que vous essayez - il sera suspendu pendant un peu de temps et le délai d'attente - la même chose qui serait se produirait si l'hôte de réception avait un pare-feu avec un filtre de goutte.

Si des pare-feu sont impliqués, alors que d'autres ont suggéré, utilisez des outils tels que nmap et quoi que ce soit d'autre.

3
Xerxes

scanner de réseau softperfect.

google pour cela.

Je l'utilise beaucoup. Fonctionne très bien

1
therulebookman

Vous pourriez avoir la machine Envoyer un piège SNMP (paquet) une fois par minute à un moniteur distant et mettre en place une règle pour surveiller que vous receviez le piège chaque minute.

1
Stuart Woodward

Google pour "nmap". Je l'utilise tout le temps. Idéal pour vérifier que vos pare-feu fonctionnent aussi. De plus, je crois que cela a été référencé dans un film matriciel qui le rend doublement génial.

1
Neobyte

La solution simple à ce problème sera d'utiliser l'utilitaire NetCat. Seule la condition préalable à ce scénario est que l'on devrait être conscient d'au moins un port ouvert sur cette machine distante.

( nc -nv ip_address port_number

La commande ci-dessus donnera un résultat qui déterminera si ledit port est ouvert ou non et donc la disponibilité de la machine

1
MVnD3X

Y a-t-il des services disponibles sur la machine? Une façon de voir si une machine est utilisée pour utiliser le client Telnet pour vous connecter, mais changer le port que vous devez frapper.

Soit donc dire que la machine est exécutée MS SQL qui fonctionne sur le port 1433 par défaut. Vous utilisez la commande suivante

telnet machine-name-address 1433

Si Telnet connecte la machine est opérationnel, ne signifie pas que cela fonctionne correctement, mais écoute néanmoins ce port

1
Brettski

pour i dans seq 1 65535; do tcpconnect -v remonthost -host $ i; terminé

1
Vish

nMAP -T5 -SS -P0 HOO.ST.IP.Addr qui verra ce qui sera disponible Port Sage sur cette machine. Recommandez l'installation de Cygwin si vous utilisez Windows ou n'ayez pas accès à une machine Linux.

1
Dan

Microsoft est propre Scanner de port de ligne de commande PORTQRY version 2.0

Je l'utilise pour tester souvent les ports SQL Server

port ouvert = écouter ou ne pas écouter un pare-feu = filtré

0
jerryhung

Une approche très simple consiste à Telnet à A TCP qui doit être ouvert sur le serveur, c'est-à-dire:

telnet theServerHostname 80

Bien que si le service est en panne, vous obtenez le même résultat que si l'hôte était en panne.

Il y a toutes sortes de scans qui peuvent être faites avec NMAP, en apprennent à leur sujet sur Site de NMAP et vous devriez devenir un expert sur la manière de tester si un hôte est en hausse. Celles-ci incluent l'utilisation de protocoles autres que l'ICMP (Ping), telles que TCP (comme telnet le fait) et UDP.

De plus, si vous voulez quelque chose qui inclut la possibilité de se connecter à UDP, cela est similaire à telnet dans ce sens, envisagez NETCAT .

0
Kyle Brandt

Vous pouvez installer un serveur Web simple et utiliser une page Web indiquant "Online". Il vous suffit de vous connecter, où que vous souhaitiez bien sûr, vous avez besoin d'une statine IP ou de services LINKE DYNDNS

0
jlan