web-dev-qa-db-fra.com

Comment savoir si une machine distante utilise Windows ou Linux?

Y a-t-il un moyen d'exécuter une commande (tel que le message ICMP ou un autre protocole), obtenir une réponse d'une machine distante (pas sur mon propre réseau local privé) et analyser le message pour trouver des preuves que cette machine exécute une fenêtre ou Un système d'exploitation Linux?

10
Diogo

Ce n'est pas définitif mais NMAP le fera avec la commande nmap -O -v ( voir docs Pour plus de détails) Si vous exécutez Windows ou que vous voulez une interface graphique, regardez zenmap

16
Journeyman Geek

Si vous êtes sur un réseau IPv4, utilisez simplement Ping. Si la réponse a un TTL de 128, la cible exécute probablement des fenêtres. Si le TTL est 64, la cible exécute probablement une variante de UNIX.

10
Harry Johnston
: Presumes ping service enabled on Windows local and remote hosts
:
del _IX.txt, Windows.txt
ping -n 1 [computername|ipaddress] | findstr /i /c:"Reply" > ttl.txt
for /f "tokens=1-9* delims=:=< " %%a in (ttl.txt) do (
    if %%i leq 130 (
       if %%i geq 100 (
          echo Windows & rem or echo %%c >> Windows.txt
       ) else (
          if %%i equ 64 (
             echo *IX & rem or echo %%c >> _IX.txt
          )
       )
    )
)
2
riverwind

Suite à la suggestion de Johnathon64, vous pouvez utiliser SNMP pour interroger directement sur le serveur - en supposant que le serveur distant lui-même est configuré pour utiliser SNMP. Vous pouvez lancer une requête de ligne de commande telle que celle ci-dessous pour le faire:

snmpget -v1 -c public <RemoteServerIP> sysDescr.0 | sed -n 's/.*STRING: //p' | tr -d \"

Expliquer la commande elle-même:

  1. snmpget doit interroger l'objet SysDESCR, qui contient le nom par défaut de l'objet.
  2. Le texte suivant sed exclura la sortie de début, qui ne contient que l'interrogé OID et le début de la chaîne.
  3. La dernière commande, tr, exclut toutes les citations doubles, généralement trouvées dans la requête SNMP.

Les deux dernières commandes ne sont que pour formater la sortie - si vous n'en avez pas besoin d'eux, peut utiliser la toute première commande pour extraire la sortie complète.

0
FoxBuster