2010-10-26 62 views
0

我的機器的ifconfig輸出如下:轉換十六進制的八位字節格式

:~ shell$ ifconfig en0 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 00:25:bc:e7:39:6a 
    inet6 fe80::225:bcff:fee7:396a%en0 prefixlen 64 scopeid 0x4 
    inet 10.170.133.45 netmask 0xffffff00 broadcast 10.170.133.255 
    media: autoselect (100baseTX <full-duplex>) 
    status: active 

我知道,網絡掩碼0xffffff00爲255.255.255.0的十六進制表示。

但是,將字符串轉換爲八位字節格式的正確方法是什麼?

你能推薦一些unix命令或shell腳本嗎?

回答

1

說你已經得到的是十六進制數到一個變量

$ s="0xffffff00" 
$ p="${s:0:2}" 
$ printf "%d.%d.%d.%d\n" ${p}${s:2:2} ${p}${s:4:2} ${p}${s:6:2} ${p}${s:8:2} 
255.255.255.0