There are many occasions when it can be useful to take the IP address of a host and convert that into a decimal number. Create a new file called ip2dec
on your system containing the following code
#!/usr/bin/awk -f
BEGIN {
ip = ARGV[1]
split(ip, octets, ".")
for (i = 1; i <= 4; i++) {
dec += octets[i] * 256 ** (4 - i)
}
printf("%i\n", dec)
}
Then make the file executable by running
$ chmod +x ip2dec
This script will take a single IP address as an input parameter and will output the decimal equivalent as shown below
$ ./ip2dec 192.168.1.1
3232235777
The script will convert any IP address from from 0.0.0.0
to 255.255.255.255
to its numeric equivalent which will be within the range 0
to 4294967295
.
It is also fairly straight-forward to convert back from a Number to an IP Address. I tend to put these scripts into a folder on my system that is included in my PATH
variable, so I can use them whenever needed.