通过IP查询服务器的操作系统类型

来源:互联网 发布:java中的流是什么意思 编辑:程序博客网 时间:2024/06/08 07:49

TTL


TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。


=======================

例如我ping了一下网易。

Pinging www.163.com [113.106.194.220] with 32 bytes of data:Reply from 113.106.194.220: bytes=32 time=3ms TTL=60Reply from 113.106.194.220: bytes=32 time=19ms TTL=60Reply from 113.106.194.220: bytes=32 time=3ms TTL=60Reply from 113.106.194.220: bytes=32 time=6ms TTL=60Ping statistics for 113.106.194.220:    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:    Minimum = 3ms, Maximum = 19ms, Average = 7ms




这里TTL的值是60,可以估计出来是Linux操作系统。64-60+1=5,可以知道它经过了5个路由到了我这里。(加1是因为64是指0~64)
为什么不说是windows系统呢?128-60+1=69,经过了69个路由到的。其实这种情况不太可能,经过69个路由节点,那这网络基本可以说是瘫痪了。一般就找比ttl值大的而且与它最接近的应该就差不多了,经过路由节点一半都不会超过30个的。
如果真的特别纠结不知道应该是那个可以用tracert工具,linux下叫traceroute。linux下apt-get就能安装,window的话到tracert IP。
下面是我在ubuntu下traceroute 网易出来的结果

Tracing route to www.163.com [113.106.194.220]over a maximum of 30 hops:  1     1 ms     2 ms     4 ms  10.0.59.254   2     3 ms     3 ms     3 ms  10.0.59.254   3     7 ms     8 ms     2 ms  113.106.194.225   4     4 ms     3 ms     8 ms  220.243.136.2   5     5 ms     2 ms     3 ms  113.106.194.220 Trace complete.



这里是表示经过了5路由。和上面计算的就符合了。这就可以确定是linux系统了。

下面是在网上找到的各个系统的TTL字段值:
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64

FreeBSD 4.1, 4.0, 3.4;

Sun Solaris 2.5.1, 2.6, 2.7, 2.8;

OpenBSD 2.6, 2.7,

NetBSD

HP UX 10.20

ICMP 回显应答的 TTL 字段值为 255

Windows 95/98/98SE

Windows ME

ICMP 回显应答的 TTL 字段值为 32

Windows NT4 WRKS

Windows NT4 Server

Windows 2000

Windows XP

ICMP 回显应答的 TTL 字段值为 128




原创粉丝点击