我的机器的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脚本吗?
答案 0 :(得分: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