这是最近看《详解卷一》的收获,想来可能以后能用到,记在这里。
在使用Ping程序去ping主机的时候,主机在返回ICMP应答时,IP首部中的TTL字段依据操作系统不同,而有不同的值,通过这个值就可以大体判断出远端主机的操作系统类型,如我的主机是WIN2000,ping的时候会出现下面的结果:
E:\>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
这里TTL是128,再看ping www.sina.com.cn的结果:
E:\>ping www.sina.com.cn
Pinging taurus.sina.com.cn [61.172.201.225] with 32 bytes of data:
Reply from 61.172.201.225: bytes=32 time=16ms TTL=48
为什么TTL是48呢? 因为ICMP应答包要经过很多路由器,TTL会被逐次减1,用tracert命令可以看到大致路由器的个数,最后可推算出www.sina.com.cn主机发出的TTL为64,这就基本可以断定它不是win2000系统啦。
大致的操作系统对应的TTL如下:
WIN2000/XP/NT: 128
WIN95/98/ME: 32
LINUX: 64
UNIX(包括BSD, Sun Solaris, HP UX): 255
VxWorks: 64
要注意的是TTL值在大多数操作系统中是可以改的(我只知道win2000下可以通过注册表来改), 所以此方法不一定完全正确。
没有评论:
发表评论