GNU/Linux >> Linux Esercitazione >  >> Linux

Come identificare il sistema operativo utilizzando il valore TTL e il comando ping

Sapevi che possiamo identificare quale sistema operativo è in esecuzione su un sistema remoto semplicemente eseguendo il ping? Sì! In questa breve guida, vedremo come determinare il sistema operativo con TTL valore e ping comando. Questo metodo dovrebbe funzionare su qualsiasi sistema operativo che abbia l'utilità della riga di comando Ping.

Esistono molti comandi, applicazioni e utilità per scoprire il sistema operativo di un sistema remoto. Tuttavia, trovare il tipo di sistema operativo con TTL è semplicissimo!

Puoi rilevare rapidamente se un sistema è in esecuzione con Linux, Windows o qualsiasi altro sistema operativo osservando il valore TTL dall'output del ping comando. Non sono necessarie applicazioni aggiuntive per rilevare il sistema operativo di un sistema remoto.

Il valore TTL varia a seconda della versione del sistema operativo e del dispositivo.

Il valore TTL iniziale predefinito per Linux/Unix è 64 e il valore TTL per Windows è 128 .

Ecco i valori TTL iniziali predefiniti per i sistemi operativi più diffusi come Linux, FreeBSD, Mac OS, Solaris e Windows.

Alla fine puoi visualizzare l'elenco completo dei valori TTL per diversi sistemi operativi e dispositivi.

Rileva il sistema operativo dell'host remoto con il valore TTL

TTL, sta per Time to live , è un valore del timer incluso nei pacchetti inviati su reti basate su TCP/IP che indica ai destinatari per quanto tempo conservare o utilizzare il pacchetto o uno qualsiasi dei suoi dati inclusi prima della scadenza e dell'eliminazione del pacchetto o dei dati.

E il comando Ping viene utilizzato per verificare la connettività e la raggiungibilità del sistema o del dispositivo su una rete locale o una rete geografica. Il comando Ping è preinstallato nella maggior parte dei sistemi operativi.

Per visualizzare il valore TTL di un host Linux/Windows, è sufficiente eseguire il ping dell'host da se stesso o da altri sistemi sulla rete:

Esempio:

$ ping -c5 localhost

Esempio di output dal mio desktop 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

Come puoi vedere, ho 64 come valore TTL nell'output sopra. Perché è un sistema Linux.

E gli host di Windows? Vediamo cosa otteniamo se eseguiamo il ping di un sistema Windows.

Sto per eseguire il ping del desktop di Windows 10 dal mio desktop Fedora. L'indirizzo IP di Il mio Windows 10 è 192.168.122.239 .

$ ping -c5 192.168.122.239

Risultato di esempio:

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

Nota il valore TTL? È 128. Il valore TTL predefinito per il sistema operativo Windows è 128.

Valori TTL iniziali

La tabella seguente mostra i valori TTL iniziali predefiniti di vari sistemi operativi e dispositivi.

Dispositivo/sistema operativo Versione Protocollo TTL
AIX TCP 60
AIX UDP 30
Android 3.2.1 TCP e ICMP 64
Android 5.1.1 TCP e ICMP 64
AIX 3.2, 4.1 ICMP 255
BSDI BSD/OS 3.1 e 4.0 ICMP 255
Compagnia Tru64 v5.0 ICMP 64
Cisco ICMP 254
Percorsi DEC V5 TCP e UDP 30
Fonderia ICMP 64
FreeBSD 2.1R TCP e UDP 64
FreeBSD 3.4, 4.0 ICMP 255
FreeBSD 5 ICMP 64
HP-UX 9.0x TCP e UDP 30
HP-UX 10.01 TCP e UDP 64
HP-UX 10.2 ICMP 255
HP-UX 11 ICMP 255
HP-UX 11 TCP 64
Irix 5.3 TCP e UDP 60
Irix 6.x TCP e UDP 60
Irix 6.5.3, 6.5.8 ICMP 255
ginepro ICMP 64
MPE/IX (HP) ICMP 200
Linux kernel 2.0.x ICMP 64
Linux 2.2.14 kernel ICMP 255
Linux kernel 2.4 ICMP 255
Linux Red Hat 9 ICMP e TCP 64
MacOS/MacTCP 2.0.x TCP e UDP 60
MacOS/MacTCP X (10.5.6) ICMP/TCP/UDP 64
NetBSD ICMP 255
Netgear FVG318 ICMP e UDP 64
OpenBSD 2.6 e 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
Strato TCP_OS ICMP 255
Strato TCP_OS (14.2-) TCP e UDP 30
Strato TCP_OS (14.3+) TCP e UDP 64
Strato STCP ICMP/TCP/UDP 60
SunOS 4.1.3/4.1.4 TCP e UDP 60
SunOS 5.7 ICMP e 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 e 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 e UDP 128
Finestre per gruppi di lavoro TCP e UDP 32
Finestre 95 TCP e UDP 32
Finestre 98 ICMP 32
Finestre 98, 98 SE ICMP 128
Finestre 98 TCP 128
Finestre NT 3.51 TCP e UDP 32
Finestre NT 4.0 TCP e UDP 128
Finestre NT 4.0 SP5- 32
Finestre NT 4.0 SP6+ 128
Finestre NT 4 WRKS SP 3, SP 6a ICMP 128
Finestre NT 4 Server SP4 ICMP 128
Finestre IO ICMP 128
Finestre 2000 pro ICMP/TCP/UDP 128
Finestre Famiglia 2000 ICMP 128
Finestre Server 2003 128
Finestre XP ICMP/TCP/UDP 128
Finestre Vista ICMP/TCP/UDP 128
Finestre 7 ICMP/TCP/UDP 128
Finestre Server 2008 ICMP/TCP/UDP 128
Finestre 10 ICMP/TCP/UDP 128

Questo metodo potrebbe non essere sempre accurato. Tuttavia, darà un'idea del sistema operativo sottostante in un sistema remoto. Se conosci solo l'indirizzo IP di un sistema remoto, puoi utilizzare il comando Ping per ottenere il nome del sistema operativo.

  • Link di riferimento

Lettura correlata:

  • Visualizza l'output del comando Ping in formato grafico utilizzando Gping
  • Stampa timestamp con output del comando Ping in Linux
  • Come eseguire il ping di più host contemporaneamente in Linux
  • Prettyping – Rendi l'output del comando Ping più carino e più facile da leggere
  • Esegui il ping di più server e mostra l'output nell'interfaccia utente di testo simile a quella superiore

Linux
  1. Come utilizzare il comando di arresto e riavvio di Linux con esempi

  2. Come combinare Ping e Traceroute su Linux usando esempi di comandi MTR

  3. Come creare e applicare patch in GIT usando diff e applicare Command

  4. Come ottenere il sistema operativo corrente in MSBuild?

  5. Come controllare il sistema operativo e la versione utilizzando un comando Linux

Come rimuovere file e directory utilizzando la riga di comando di Linux

Come clonare e ripristinare la partizione Linux usando il comando dd

Come installare e utilizzare il comando Ping in Linux

Come usare il comando DD e come masterizzare ISO usandolo

Come installare e utilizzare il comando Ack nel sistema Linux

Come ottenere informazioni sull'hardware su Linux utilizzando il comando dmidecode