|
发表于 2008-3-11 09:08:43
|
显示全部楼层
用bash写了一个
ip.sh- #!/bin/bash
- IPA='10.161.100.200'
- MASK='255.255.255.0'
- IP="$1"
- IFS='.' read IP1 IP2 IP3 IP4 <<<"$IPA"
- #echo "$IP1 $IP2 $IP3 $IP4"
- IPN=$(((IP1<<24) + (IP2<<16) + (IP3<<8) + IP4))
- #echo $IPN
- IFS='.' read IP1 IP2 IP3 IP4 <<<"$MASK"
- #echo "$IP1 $IP2 $IP3 $IP4"
- MASKN=$(((IP1<<24) + (IP2<<16) + (IP3<<8) + IP4))
- #echo $MASKN
- NET=$((IPN & MASKN))
- IP4=$NET
- #echo $NET
- IP1=$((IP4/(1<<24)))
- IP4=$((IP4 % (1<<24)))
- IP2=$((IP4/(1<<16)))
- IP4=$((IP4 % (1<<16)))
- IP3=$((IP4/(1<<8)))
- IP4=$((IP4%(1<<8)))
- #echo "$IP1.$IP2.$IP3.$IP4"
- IFS='.' read IP1 IP2 IP3 IP4 <<<"$IP"
- #echo "$IP1 $IP2 $IP3 $IP4"
- IPN=$(((IP1<<24) + (IP2<<16) + (IP3<<8) + IP4))
- #echo $IPN
- NET1=$((IPN & MASKN))
- #echo ${NET1}
- if [ $NET -eq $NET1 ];then
- echo $IPA
- echo $MASK
- echo "$IPA and $IP in same subnet"
- else
- echo $IPA
- echo $MASK
- echo "$IPA and $IP not in same subnet"
- fi
复制代码
chmod +x ip.sh
./ip.sh 10.161.100.222 |
|