原帖由 "taocb006" 發(fā)表:
echo "please input IP:"
read ip
echo $ip |awk -F"." '{
if ( ($1>256 || $1<0) || ($2>256 || $2 < 0) || ($3 > 256 || $3 < 0) || ($ 4 >256
|| $4 < 0 ) || ($NF>4) ) print $..........
原帖由 "r2007"][/quote 發(fā)表:
我的腳本測試:復(fù)制代碼
- #!/bin/ksh
- #
- if ! echo $1|grep -q "[a-zA-Z!@#$%^&*()-_+=|\`~<>,/?]";then
- n=1
- for i in x y z w;do
- export ip$i=$(echo $1|cut -f$n -d".")
- ((n+=1))
- done
- (($ipx>0&&$ipx<256))&&(($ipy>=0&&$ipy<256))&&\
- (($ipz>=0&&$ipz<256))&&(($ipw>=0&&$ipw<256))&&\
- echo "$1 is correct IP!"||echo "$1 is incorrect IP!"
- else
- echo "input error!"
- fi 2>/dev/null
[quote]
$ksh ipp 1.1--------2.+3.0256
input error!
$ksh ipp 0333.0257.0355.0307
0333.0257.0355.0307 is incorrect IP!
$ksh ipp 0x99.1 2.+3.0256
input error!
$ksh ipp 1.1 1.2 3.3
1.1 is incorrect IP!
$ksh ipp 0xab.1.1.
input error!
原帖由 "r2007" 發(fā)表:
to: bjmm
ksh我沒有接觸過,不過我猜這個未必能測出來^_^
1.1.1.-0
or
1.1.1.-
or
1.0.1.1-
or
1.0.0.1-------
至少可以躲過echo "input error!"這一關(guān)
cat iplist
1.1.1.-0
1.1.1.-
1.0.1.1-
1.0.0.1-------
1.1--------2.+3.0256
0333.0257.0355.0307
0x99.1 2.+3.0256
1.1 1.2 3.3
0xab.1.1.1
1.2.3.4
192.168.2.2
211.12.2.2
61.51.142.3
1.1.1.-0 is: incorrect IP!
1.1.1.- is: incorrect IP!
1.0.1.1- is: incorrect IP!
1.0.0.1------- is: incorrect IP!
1.1--------2.+3.0256 is: incorrect IP!
0333.0257.0355.0307 is: incorrect IP!
0x99.1 is: incorrect IP!
2.+3.0256 is: incorrect IP!
1.1 is: incorrect IP!
1.2 is: incorrect IP!
3.3 is: incorrect IP!
0xab.1.1.1 is: incorrect IP!
1.2.3.4 is: correct IP!
192.168.2.2 is: correct IP!
211.12.2.2 is: correct IP!
61.51.142.3 is: correct IP!
原帖由 "網(wǎng)中人" 發(fā)表:
還有... MM 為何認(rèn)為第 4 碼的 IP 不可以是 0 呢?
因為一個 mask_bit 少於 24 的 IP 都可以用 0 哦...
若,本串討論再加入 netmask 判斷,那就更為精彩了... ^_^
原帖由 "網(wǎng)中人" 發(fā)表:
還有... MM 為何認(rèn)為第 4 碼的 IP 不可以是 0 呢?
因為一個 mask_bit 少於 24 的 IP 都可以用 0 哦...
若,本串討論再加入 netmask 判斷,那就更為精彩了... ^_^
原帖由 r2007 于 2004-3-2 23:20 發(fā)表
to: bjmm
ksh我沒有接觸過,不過我猜這個未必能測出來^_^
1.1.1.-0
or
1.1.1.-
or
1.0.1.1-
or
1.0.0.1-------
至少可以躲過echo "input error!"這一關(guān)
#!/bin/ksh
#
if ! echo $1|grep -q "[a-zA-Z!@#$%^&*()-_+=|\`~<>,/?]";then
n=1
for i in x y z w;do
export ip$i=$(echo $1|cut -f$n -d".")
((n+=1))
done
(($ipx>0&&$ipx<256))&&(($ipy>=0&&$ipy<256))&&\
(($ipz>=0&&$ipz<256))&&(($ipw>=0&&$ipw<256))&&\
echo "$1 is correct IP!"||echo "$1 is incorrect IP!"
else
echo "input error!"
fi 2>/dev/null
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |