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

用于将IP地址字符串转换为十六进制格式的Bash脚本,bash,Bash,IP_ADDR=192.168.1.128 printf“%02X”${IP_ADDR/./};回声 有人能解释一下这个简单的一行程序是如何将IP_ADDR转换成十六进制格式的吗?我正在绞尽脑汁寻找有关这种行为的文档。 您只需使用gethostip(来自Debian/Ubuntu上的syslinux utils): @Ignacio是否有反转函数?@ganeshsat计算这将反转它:printf“%d.%d.%d.%d\n'`echo 4A3EBA33|sed-r's/(..)/0x\1/g`


IP_ADDR=192.168.1.128

printf“%02X”${IP_ADDR/./};回声

有人能解释一下这个简单的一行程序是如何将IP_ADDR转换成十六进制格式的吗?我正在绞尽脑汁寻找有关这种行为的文档。


您只需使用
gethostip
(来自Debian/Ubuntu上的syslinux utils):


@Ignacio是否有反转函数?@ganeshsat计算这将反转它:
printf“%d.%d.%d.%d\n'`echo 4A3EBA33|sed-r's/(..)/0x\1/g`
每两个数字转换为“0xN”,其中n是两个数字。然后printf将每个十六进制值转换为十进制数,并在它们之间加一个“.”。
$ IP_ADDR=192.168.1.128
$ echo ${IP_ADDR//./ }
192 168 1 128
$ printf '%02X' 192 168 1 128 ; echo
C0A80180
$ gethostip -x 192.168.1.128
C0A80180