10進ドット記法と10進の変換

IPアドレスの表記を入れ替える。





もとは1ライナーで作成

dec2dot.awk

��3232235777を192.168.1.1に)



BEGIN{

addr=ARGV[1];

print dec2dot(addr)

}



#function dec2dot(decaddr){

#

#sprintf ("%i.%i.%i.%i¥n",

# decaddr/(16777216),

# decaddr%(16777216)/(65536),

# decaddr%(16777216)%(65536)/(256),

# decaddr%(16777216)%(65536)%(256)/(1))

#}


# たぶん大丈夫だろうけど書式による丸め使ってて

# 曖昧になる可能性があったので修正


# うーんなんか商に少数点以下が付いたりしておかしい。修正

function dec2dot(decaddr ,oct){

oct[4]=(((decaddr%16777216)%65536)%256)/1

oct[3]=(((decaddr-oct[4])%16777216)%65536)/256

oct[2]=((decaddr-oct[3]*256-oct[4])%16777216)/65536

oct[1]=(decaddr-oct[2]*65536-oct[3]*256-oct[4])/16777216



#検算用

#print oct[4]

#print oct[3]

#print oct[2]

#print oct[1]

#print "**"



return sprintf("%i.%i.%i.%i",oct[1],oct[2],oct[3],oct[4])

}









awk -f dec2dot.awk 3232235777





dot2dec.awk

��192.168.1.1を3232235777に)



BEGIN{

split(ARGV[1],arr,".");

printf("%.0f¥n",arr[1]*256^3+arr[2]*256^2+arr[3]*256+arr[4])

}





awk -f dot2dec.awk 192.168.1.1







おまけ

10進ドット記法を十六進に



awk 'BEGIN{split(ARGV[1],arr,"."); printf("0x%x%x%x%x¥n",arr[1],arr[2],arr[3],arr[4]) }' 192.168.1.1







JUGEMテーマ:コンピュータ





コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに