Create a Post
cancel
Showing results for 
Search instead for 
Did you mean: 
HeikoAnkenbrand
Champion Champion
Champion
Jump to solution

Check Point - HEX to IP Converter Tool?

Is there a Check Point tool to easily convert hexadecimal values to IP addresses on the CLI?

 

I use the following lines in scripts:

 

hexaddr=$(echo 12cd34ef)
ipaddr=$(printf "%d." $(echo $hexaddr | sed 's/../0x& /g' | tr ' ' '\n' | tac) | sed 's/\.$/\n/')
echo $ipaddr

 

Is there an easier way?

 

Regards

Heiko Ankenbrand


➜ CCSM Elite, CCME, CCTE
1 Solution

Accepted Solutions
HeikoAnkenbrand
Champion Champion
Champion

I think, this is a shortest command that I found with google:

printf '%d.%d.%d.%d\n' $(echo $ip | sed 's/../0x& /g')

THX

Heiko


➜ CCSM Elite, CCME, CCTE

View solution in original post

8 Replies
Roman_Niewiado1
Contributor

Its not on the Check Point CLI, but you can do this in the Windows command line.

C:\Users\Roman>ping 0x12

Ping wird ausgeführt für 0.0.0.18 mit 32 Bytes Daten:

C:\Users\Roman>ping 0x12cd34ef

Ping wird ausgeführt für 18.205.52.239 mit 32 Bytes Daten:

HeikoAnkenbrand
Champion Champion
Champion

Great idea, but not much shorter than the original command.

ping -c 1 -w 1 0x12cdd3ef |grep "("| sed -r 's/([^\.]*)\) .*/\1/'| sed -r 's/([^\.]*)\) .*/\1/'|cut -c18-

Regards,

Heiko


➜ CCSM Elite, CCME, CCTE
masher
Employee
Employee

What about using BC and GETHOSTIP as an alternative?

HEX=`tr [:lower:] [:upper:]  <<< 6c302b66` | C=`echo "ibase=16;${HEX}" | bc` ; gethostip  -d $C   

HeikoAnkenbrand
Champion Champion
Champion

I think, this is a shortest command that I found with google:

printf '%d.%d.%d.%d\n' $(echo $ip | sed 's/../0x& /g')

THX

Heiko


➜ CCSM Elite, CCME, CCTE
bernhard_m
Contributor

You could trade the additional echo process for additional File IO by using here-string.

printf '%d.%d.%d.%d\n' $(sed 's/../0x& /g' <<<$ip)

0 Kudos
HeikoAnkenbrand
Champion Champion
Champion

nice, thx


➜ CCSM Elite, CCME, CCTE
0 Kudos
Maxim_Tremblay_
Explorer

Why are you using tac in your command ? This invert the IP digits. As in your example, 12cd34ef = 18.205.52.239, but if I use your command line, the result is 239.52.205.18 (inverted). If I remove the tac, the result is correct. E.g.: 18.205.52.239

(Double checked with https://www.browserling.com/tools/hex-to-ip)

Why not just:

Just create a /bin/hex2ip with:

[ -z $1 ] && echo "Please specify an IP in HEX" && exit
echo " HEX '`echo 00000000$1 | tail -c 9`' IP = `printf "%d." $(echo 00000000$1 | tail -c 9 | sed 's/../0x& /g' | tr ' ' '\n') | sed 's/\.$/\n/'`"

And why not a /bin/ip2hex:

[ -z $1 ] && echo "Please specify an IP" && exit
echo " IP '$1' in HEX = `echo 00000000$(printf "%x" $(echo $1 | sed 's/\./ /g')) | tail -c 9`"

Example:

hex2ip 12cd34ef    Will return:
 HEX '12cd34ef' IP = 18.205.52.239

ip2hex 18.205.52.239    Will return:
 IP '18.205.52.239' in HEX = 12cd34ef

Maxim

Enjoy!

HeikoAnkenbrand
Champion Champion
Champion

THX,

Heiko


➜ CCSM Elite, CCME, CCTE
0 Kudos

Leaderboard

Epsum factorial non deposit quid pro quo hic escorol.

Upcoming Events

    CheckMates Events