一個把IP地址轉化為長整數的指令碼(轉)

post0發表於2007-08-11
一個把IP地址轉化為長整數的指令碼(轉)[@more@]

有些時候,很多人在pub網址的時候會使用一個長整數,這樣相對來說IP地址不易為被別人記住,但一樣可以在flashfxp等工具中使用,即使是ping也支援這種寫法,如:ping 16843009

PING 16843009: (1.1.1.1): 56 data bytes

不過我寫這個指令碼的最初目的,只是為了用較短的程式碼判斷輸入是不是一個符合格式的IP地址。

[code:1:65116d8eca]

#!/usr/bin/ksh

expr $1 : '^[1-9]{1}[0-9]{0,2}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$' >/dev/null 2>&1 || { echo "bad ip address";exit; }

IFS=.

set $1

if [[ $1 -le 255 && $2 -le 255 && $3 -le 255 && $4 -le 254 ]]

then

echo $(($1*256*256*256+$2*256*256+$3*256+$4))

else

echo "still a bad ip"

fi

[/code:1:65116d8eca

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章