- CheckMates
- :
- Products
- :
- Developers
- :
- API / CLI Discussion
- :
- Check Point - HEX to IP Converter Tool?
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
Are you a member of CheckMates?
×- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What about using BC and GETHOSTIP as an alternative?
HEX=`tr [:lower:] [:upper:] <<< 6c302b66` | C=`echo "ibase=16;${HEX}" | bc` ; gethostip -d $C
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
nice, thx
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
THX,
Heiko
