有没有一种方法可以使用bash脚本而不使用'nmap'检测OS?

时间:2020-07-16 13:04:57

标签: bash

所以最近我想编写脚本来从ping命令检测OS。 我有类似192.168.1.0/24的用户输入 我有1个这样的bash脚本示例,但是它使用nmap

#!/bin/bash                                                                    

if [ -z $1 ] ; then 
    echo "Please enter ip address"
    exit 1
fi 

function print_os_type() {
    case $2  in 
       64) echo "$1 Linux" ;;
       128) echo "$1  Windows" ;;
       *) echo "$1 Unknown os type";;
    esac
}

function get_ttl() {
    ping -c1 -w1 $1 | grep ttl | awk '{print $6}' | tr -d "ttl="
}

if [ ! -z $2 ] ; then 
    IPS=$(nmap -sL -n $1/$2 | grep report | awk '{print $5}')  
    for I in ${IPS[@]}
    do
        ttl=$(get_ttl $I) 
        print_os_type $I $ttl
    done
else
    ttl=$(ping -c1 -w1 $1 | grep ttl | awk '{print $6}' | tr -d "ttl=")
    print_os_type $1 $ttl
fi

所以我只是徘徊,有什么办法可以使用bash脚本吗? 谢谢您的时间!

0 个答案:

没有答案