TTL (Time To Live) is a timer value included in packets sent over networks that tells the recipient how long to hold or use the packet before discarding and expiring the data (packet). TTL values are different for different Operating Systems. So, you can determine the OS based on the TTL value. You can get the TTL value by pinging an address. Here is the output got by pinging “subinsb.com” on my system :
Device / OS
|
<td>
Version
</td>
<td>
Protocol
</td>
<td>
TTL
</td>
AIX
|
<td>
</td>
<td>
TCP
</td>
<td>
60
</td>
AIX
|
<td>
</td>
<td>
UDP
</td>
<td>
30
</td>
AIX
|
<td>
3.2, 4.1
</td>
<td>
ICMP
</td>
<td>
255
</td>
BSDI
|
<td>
BSD/OS 3.1 and 4.0
</td>
<td>
ICMP
</td>
<td>
255
</td>
Compa
|
<td>
Tru64 v5.0
</td>
<td>
ICMP
</td>
<td>
64
</td>
Cisco
|
<td>
</td>
<td>
ICMP
</td>
<td>
254
</td>
DEC Pathworks
|
<td>
V5
</td>
<td>
TCP and UDP
</td>
<td>
30
</td>
Foundry
|
<td>
</td>
<td>
ICMP
</td>
<td>
64
</td>
FreeBSD
|
<td>
2.1R
</td>
<td>
TCP and UDP
</td>
<td>
64
</td>
FreeBSD
|
<td>
3.4, 4.0
</td>
<td>
ICMP
</td>
<td>
255
</td>
FreeBSD
|
<td>
5
</td>
<td>
ICMP
</td>
<td>
64
</td>
HP-UX
|
<td>
9.0x
</td>
<td>
TCP and UDP
</td>
<td>
30
</td>
HP-UX
|
<td>
10.01
</td>
<td>
TCP and UDP
</td>
<td>
64
</td>
HP-UX
|
<td>
10.2
</td>
<td>
ICMP
</td>
<td>
255
</td>
HP-UX
|
<td>
11
</td>
<td>
ICMP
</td>
<td>
255
</td>
HP-UX
|
<td>
11
</td>
<td>
TCP
</td>
<td>
64
</td>
Irix
|
<td>
5.3
</td>
<td>
TCP and UDP
</td>
<td>
60
</td>
Irix
|
<td>
6.x
</td>
<td>
TCP and UDP
</td>
<td>
60
</td>
Irix
|
<td>
6.5.3, 6.5.8
</td>
<td>
ICMP
</td>
<td>
255
</td>
juniper
|
<td>
</td>
<td>
ICMP
</td>
<td>
64
</td>
MPE/IX (HP)
|
<td>
</td>
<td>
ICMP
</td>
<td>
200
</td>
Linux
|
<td>
2.0.x kernel
</td>
<td>
ICMP
</td>
<td>
64
</td>
Linux
|
<td>
2.2.14 kernel
</td>
<td>
ICMP
</td>
<td>
255
</td>
Linux
|
<td>
2.4 kernel
</td>
<td>
ICMP
</td>
<td>
255
</td>
Linux
|
<td>
Red Hat 9
</td>
<td>
ICMP and TCP
</td>
<td>
64
</td>
MacOS/MacTCP
|
<td>
2.0.x
</td>
<td>
TCP and UDP
</td>
<td>
60
</td>
MacOS/MacTCP
|
<td>
X (10.5.6)
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
64
</td>
NetBSD
|
<td>
</td>
<td>
ICMP
</td>
<td>
255
</td>
Netgear FVG318
|
<td>
</td>
<td>
ICMP and UDP
</td>
<td>
64
</td>
OpenBSD
|
<td>
2.6 & 2.7
</td>
<td>
ICMP
</td>
<td>
255
</td>
OpenVMS
|
<td>
07.01.2002
</td>
<td>
ICMP
</td>
<td>
255
</td>
OS/2
|
<td>
TCP/IP 3.0
</td>
<td>
</td>
<td>
64
</td>
OSF/1
|
<td>
V3.2A
</td>
<td>
TCP
</td>
<td>
60
</td>
OSF/1
|
<td>
V3.2A
</td>
<td>
UDP
</td>
<td>
30
</td>
Solaris
|
<td>
2.5.1, 2.6, 2.7, 2.8
</td>
<td>
ICMP
</td>
<td>
255
</td>
Solaris
|
<td>
2.8
</td>
<td>
TCP
</td>
<td>
64
</td>
Stratus
|
<td>
TCP_OS
</td>
<td>
ICMP
</td>
<td>
255
</td>
Stratus
|
<td>
TCP_OS (14.2-)
</td>
<td>
TCP and UDP
</td>
<td>
30
</td>
Stratus
|
<td>
TCP_OS (14.3+)
</td>
<td>
TCP and UDP
</td>
<td>
64
</td>
Stratus
|
<td>
STCP
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
60
</td>
SunOS
|
<td>
4.1.3/4.1.4
</td>
<td>
TCP and UDP
</td>
<td>
60
</td>
SunOS
|
<td>
5.7
</td>
<td>
ICMP and TCP
</td>
<td>
255
</td>
Ultrix
|
<td>
V4.1/V4.2A
</td>
<td>
TCP
</td>
<td>
60
</td>
Ultrix
|
<td>
V4.1/V4.2A
</td>
<td>
UDP
</td>
<td>
30
</td>
Ultrix
|
<td>
V4.2 – 4.5
</td>
<td>
ICMP
</td>
<td>
255
</td>
VMS/Multinet
|
<td>
</td>
<td>
TCP and UDP
</td>
<td>
64
</td>
VMS/TCPware
|
<td>
</td>
<td>
TCP
</td>
<td>
60
</td>
VMS/TCPware
|
<td>
</td>
<td>
UDP
</td>
<td>
64
</td>
VMS/Wollongong
|
<td>
1.1.1.1
</td>
<td>
TCP
</td>
<td>
128
</td>
VMS/Wollongong
|
<td>
1.1.1.1
</td>
<td>
UDP
</td>
<td>
30
</td>
VMS/UCX
|
<td>
</td>
<td>
TCP and UDP
</td>
<td>
128
</td>
Windows
|
<td>
for Workgroups
</td>
<td>
TCP and UDP
</td>
<td>
32
</td>
Windows
|
<td>
95
</td>
<td>
TCP and UDP
</td>
<td>
32
</td>
Windows
|
<td>
98
</td>
<td>
ICMP
</td>
<td>
32
</td>
Windows
|
<td>
98, 98 SE
</td>
<td>
ICMP
</td>
<td>
128
</td>
Windows
|
<td>
98
</td>
<td>
TCP
</td>
<td>
128
</td>
Windows
|
<td>
NT 3.51
</td>
<td>
TCP and UDP
</td>
<td>
32
</td>
Windows
|
<td>
NT 4.0
</td>
<td>
TCP and UDP
</td>
<td>
128
</td>
Windows
|
<td>
NT 4.0 SP5-
</td>
<td>
</td>
<td>
32
</td>
Windows
|
<td>
NT 4.0 SP6+
</td>
<td>
</td>
<td>
128
</td>
Windows
|
<td>
NT 4 WRKS SP 3, SP 6a
</td>
<td>
ICMP
</td>
<td>
128
</td>
Windows
|
<td>
NT 4 Server SP4
</td>
<td>
ICMP
</td>
<td>
128
</td>
Windows
|
<td>
ME
</td>
<td>
ICMP
</td>
<td>
128
</td>
Windows
|
<td>
2000 pro
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
Windows
|
<td>
2000 family
</td>
<td>
ICMP
</td>
<td>
128
</td>
Windows
|
<td>
Server 2003
</td>
<td>
</td>
<td>
128
</td>
Windows
|
<td>
XP
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
Windows
|
<td>
Vista
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
Windows
|
<td>
7
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
Windows
|
<td>
Server 2008
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
Windows
|
<td>
10
</td>
<td>
ICMP/TCP/UDP
</td>
<td>
128
</td>
I will update this table in the future when there’s a release of new important OS whenever I get the time. You can get the short version of default TTL values by this table :