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.16...