Преобразовать шестнадцатеричный формат в октет - PullRequest
0 голосов
/ 26 октября 2010

вывод 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 или скрипт оболочки?

1 Ответ

1 голос
/ 26 октября 2010

говорят, что вы уже получили это шестнадцатеричное число в переменную

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...