用于将IP地址字符串转换为十六进制格式的Bash脚本

时间:2011-05-27 07:37:20

标签: bash

IP_ADDR=192.168.1.128

printf '%02X' ${IP_ADDR//./ }; echo

有人可以解释这个简单的oneliner如何将IP_ADDR转换为十六进制格式?我正在试图找到一些关于这种行为的文档。

2 个答案:

答案 0 :(得分:8)

Shell Parameter Expansion

$ IP_ADDR=192.168.1.128
$ echo ${IP_ADDR//./ }
192 168 1 128
$ printf '%02X' 192 168 1 128 ; echo
C0A80180

答案 1 :(得分:1)

你可以简单地使用gethostip(来自Debian / Ubuntu上的syslinux-utils):

$ gethostip -x 192.168.1.128
C0A80180