Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1562223
  • 博文数量: 290
  • 博客积分: 3468
  • 博客等级: 中校
  • 技术积分: 3461
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-28 22:21
文章分类

全部博文(290)

文章存档

2016年(13)

2015年(3)

2014年(42)

2013年(67)

2012年(90)

2011年(75)

分类: Python/Ruby

2012-02-16 15:43:15


原文地址: http://lxsym.blog.51cto.com/1364623/772783

其实这种方法的结果不怎么准,哈哈

TTL指的是一个网络层数据包(package)的生存周期.可以通过ping的回显TTL来大体判断一台机器是什么操作系统。(虽然可通过修改某些系统的网络参数来修改,不过很少对该值进行修改的)

以下脚本比较简单,必须在目标网段中的某一台机器上运行。具体如下:

#!/bin/sh
#检查整个网段主机系统linux/windows/网络设备
ip="192.168.113."
LOG=/root/ip.log
for i in `seq 1 254`
do
   ping -c 2 $ip$i  > $LOG
   okip=`cat $LOG | grep "ttl=" | awk -F'[: =]' '{print $4}'|sort |uniq`
   ttl=`cat $LOG | grep "ttl=" | awk -F'[: =]' '{print $9}'|sort |uniq`
   if [ $ttl -eq 64 ];then
         echo -e "\e[32mcheck $okip is linux主机\e[0m"
     elif [ $ttl -eq 128 ];then
         echo -e "\e[32mcheck $okip is windows主机\e[0m"
     else
         echo -e "\e[32mcheck $okip is VIP/网络设备/其他\e[0m"
   fi
done

运行结果:
......
check 192.168.113.152 is linux主机
check 192.168.113.153 is linux主机
check 192.168.113.154 is windows主机
check 192.168.113.155 is linux主机
check 192.168.113.156 is windows主机
check 192.168.113.157 is windows主机
check 192.168.113.158 is linux主机
check 192.168.113.159 is linux主机
check 192.168.113.160 is VIP/网络设备/其他
check 192.168.113.161 is VIP/网络设备/其他

阅读(1228) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~