GNU/Linux >> Tutoriels Linux >  >> Linux

Comment identifier le système d'exploitation à l'aide de la valeur TTL et de la commande Ping

Saviez-vous que nous pouvons identifier quel système d'exploitation s'exécute sur un système distant en lui envoyant simplement un ping ? Oui! Dans ce bref guide, nous verrons comment déterminer le système d'exploitation avec TTL valeur et Ping commande. Cette méthode devrait fonctionner sur n'importe quel système d'exploitation disposant de l'utilitaire de ligne de commande Ping.

Il existe de nombreuses commandes, applications et utilitaires permettant de connaître le système d'exploitation d'un système distant. Cependant, trouver le type de système d'exploitation avec TTL est super facile !

Vous pouvez rapidement détecter si un système fonctionne avec Linux, ou Windows ou tout autre système d'exploitation en regardant la valeur TTL à partir de la sortie du ping commande. Vous n'avez besoin d'aucune application supplémentaire pour détecter le système d'exploitation d'un système distant.

La valeur TTL varie en fonction de la version d'un système d'exploitation et d'un périphérique.

La valeur TTL initiale par défaut pour Linux/Unix est 64 , et valeur TTL pour Windows est 128 .

Voici les valeurs TTL initiales par défaut pour les systèmes d'exploitation populaires tels que Linux, FreeBSD, Mac OS, Solaris et Windows.

Vous pouvez afficher la liste complète des valeurs TTL pour différents systèmes d'exploitation et appareils à la fin.

Détecter le système d'exploitation de l'hôte distant avec la valeur TTL

TTL, signifie Time to live , est une valeur de minuterie incluse dans les paquets envoyés sur des réseaux TCP/IP qui indique aux destinataires combien de temps conserver ou utiliser le paquet ou l'une de ses données incluses avant d'expirer et de supprimer le paquet ou les données.

Et la commande Ping est utilisée pour vérifier la connectivité et l'accessibilité du système ou de l'appareil sur le réseau local ou le réseau étendu. La commande Ping est préinstallée sur la plupart des systèmes d'exploitation.

Pour afficher la valeur TTL d'un hôte Linux/Windows, envoyez simplement un ping à l'hôte depuis lui-même ou depuis d'autres systèmes du réseau :

Exemple :

$ ping -c5 localhost

Exemple de sortie de mon bureau Fedora :

PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.057 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.070 ms
64 bytes from localhost (::1): icmp_seq=4 ttl=64 time=0.067 ms
64 bytes from localhost (::1): icmp_seq=5 ttl=64 time=0.056 ms

--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4096ms
rtt min/avg/max/mdev = 0.056/0.062/0.070/0.005 ms

Comme vous pouvez le voir, j'obtiens 64 comme valeur TTL dans la sortie ci-dessus. Parce que c'est un système Linux.

Qu'en est-il des hôtes Windows ? Voyons ce que nous obtenons si nous pinçons un système Windows.

Je vais envoyer un ping au bureau Windows 10 à partir de mon bureau Fedora. L'adresse IP de Mon Windows 10 est 192.168.122.239 .

$ ping -c5 192.168.122.239

Exemple de résultat :

PING 192.168.122.239 (192.168.122.239) 56(84) bytes of data.
64 bytes from 192.168.122.239: icmp_seq=1 ttl=128 time=6.85 ms
64 bytes from 192.168.122.239: icmp_seq=2 ttl=128 time=0.510 ms
64 bytes from 192.168.122.239: icmp_seq=3 ttl=128 time=0.601 ms
64 bytes from 192.168.122.239: icmp_seq=4 ttl=128 time=0.541 ms
64 bytes from 192.168.122.239: icmp_seq=5 ttl=128 time=0.558 ms

--- 192.168.122.239 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4088ms
rtt min/avg/max/mdev = 0.510/1.812/6.851/2.519 ms

Notez la valeur TTL ? Il s'agit de 128. La valeur TTL par défaut pour le système d'exploitation Windows est 128.

Valeurs TTL initiales

Le tableau suivant indique les valeurs TTL initiales par défaut de divers systèmes d'exploitation et périphériques.

Appareil/SE Version Protocole TTL
AIX TCP 60
AIX UDP 30
Android 3.2.1 TCP et ICMP 64
Android 5.1.1 TCP et ICMP 64
AIX 3.2, 4.1 ICMP 255
BSDI BSD/OS 3.1 et 4.0 ICMP 255
Entreprise Tru64 v5.0 ICMP 64
Cisco ICMP 254
Trajectoires DEC V5 TCP et UDP 30
Fonderie ICMP 64
FreeBSD 2.1R TCP et UDP 64
FreeBSD 3.4, 4.0 ICMP 255
FreeBSD 5 ICMP 64
HP-UX 9.0x TCP et UDP 30
HP-UX 10.01 TCP et UDP 64
HP-UX 10.2 ICMP 255
HP-UX 11 ICMP 255
HP-UX 11 TCP 64
Irix 5.3 TCP et UDP 60
Irix 6.x TCP et UDP 60
Irix 6.5.3, 6.5.8 ICMP 255
genévrier ICMP 64
MPE/IX (HP) ICMP 200
Linux noyau 2.0.x ICMP 64
Linux noyau 2.2.14 ICMP 255
Linux noyau 2.4 ICMP 255
Linux Red Hat 9 ICMP et TCP 64
MacOS/MacTCP 2.0.x TCP et UDP 60
MacOS/MacTCP X (10.5.6) ICMP/TCP/UDP 64
NetBSD ICMP 255
Netgear FVG318 ICMP et UDP 64
OpenBSD 2.6 &2.7 ICMP 255
OpenVMS 07.01.2002 ICMP 255
OS/2 TCP/IP 3.0 64
OSF/1 V3.2A TCP 60
OSF/1 V3.2A UDP 30
Solaris 2.5.1, 2.6, 2.7, 2.8 ICMP 255
Solaris 2.8 TCP 64
Strates TCP_OS ICMP 255
Strates TCP_OS (14.2-) TCP et UDP 30
Strates TCP_OS (14.3+) TCP et UDP 64
Strates STCP ICMP/TCP/UDP 60
SunOS 4.1.3/4.1.4 TCP et UDP 60
SunOS 5.7 ICMP et TCP 255
Ultrix V4.1/V4.2A TCP 60
Ultrix V4.1/V4.2A UDP 30
Ultrix V4.2 – 4.5 ICMP 255
VMS/Multinet TCP et UDP 64
VMS/TCPware TCP 60
VMS/TCPware UDP 64
VMS/Wollongong 1.1.1.1 TCP 128
VMS/Wollongong 1.1.1.1 UDP 30
VMS/UCX TCP et UDP 128
Windows pour les groupes de travail TCP et UDP 32
Windows 95 TCP et UDP 32
Windows 98 ICMP 32
Windows 98, 98 SE ICMP 128
Windows 98 TCP 128
Windows NT 3.51 TCP et UDP 32
Windows NT 4.0 TCP et UDP 128
Windows NT 4.0 SP5- 32
Windows NT 4.0 SP6+ 128
Windows NT 4 WRKS SP 3, SP 6a ICMP 128
Windows Serveur NT 4 SP4 ICMP 128
Windows MOI ICMP 128
Windows 2000 pro ICMP/TCP/UDP 128
Windows Famille 2000 ICMP 128
Windows Serveur 2003 128
Windows EXP ICMP/TCP/UDP 128
Windows Vista ICMP/TCP/UDP 128
Windows 7 ICMP/TCP/UDP 128
Windows Serveur 2008 ICMP/TCP/UDP 128
Windows 10 ICMP/TCP/UDP 128

Cette méthode peut ne pas être précise tout le temps. Cependant, cela donnera une idée du système d'exploitation sous-jacent dans un système distant. Si vous ne connaissez que l'adresse IP d'un système distant, vous pouvez utiliser la commande Ping pour obtenir le nom du système d'exploitation.

  • Lien de référence

Lire connexe :

  • Afficher la sortie de la commande Ping sous forme de graphique à l'aide de Gping
  • Imprimer l'horodatage avec la sortie de la commande Ping sous Linux
  • Comment envoyer un ping à plusieurs hôtes à la fois sous Linux
  • Prettyping - Rendre la sortie de la commande Ping plus jolie et plus facile à lire
  • Pingez plusieurs serveurs et affichez la sortie dans l'interface utilisateur textuelle supérieure

Linux
  1. Utilisation de la commande timedatectl pour modifier l'heure et la date sur le système Linux RHEL7

  2. Comment identifier les répertoires de travail à l'aide de caractères et de variables Shell

  3. Comment installer et utiliser la commande Ping sous Linux

  4. Comment utiliser la commande d'arrêt et de redémarrage de Linux avec des exemples

  5. Comment obtenir le système d'exploitation actuel dans MSBuild ?

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

Comment installer et utiliser la commande Ping sous Linux

Comment utiliser la commande DD et comment graver ISO en l'utilisant

Comment installer et utiliser la commande Ack dans le système Linux

Comment obtenir des informations sur le matériel sous Linux à l'aide de la commande dmidecode