News for hackers. Stuff that matters.
Re:There’s more than one way to write an IP address by digitalsushi on Tuesday July 09, 2019 @08:56AM (#20391225)
I believe you can also represent an ipv4 address in base 10, by doing something like

a.b.c.d, (a * 2^24) + (b * 2^16) + (c * 2^8) + (d * 2^0)

(the first time i did this was the first time I understood raising a constant to zero was one, so I left it there for myself)

The resultant number should be somewhere between 0 and (2^32)-1. It's a neat toy. I'm not sure what value it has in practice.

192 x 2^24 + 168 x 2^16 + 0 x 2^8 + 1 x 2^0 == 3232235521

ping 3232235521 PING 3232235521 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 ^C

Re:There’s more than one way to write an IP address by magmastonealex on Tuesday July 09, 2019 @09:33AM (#20391515)
I've used this a handful of times, actually!

I've mostly done it to determine a "next" IP address from a large range - i.e, what IP comes after 10.0.0.255, and how can I bound it between 10.0.0.30 and 10.0.1.128?

It's much easier to increment an integer, compare it to other integers, and then convert it back to an string-format IP than it is to implement those operations by "parsing" IP addresses.

Re:There’s more than one way to write an IP address by tomjakubowski on Tuesday July 09, 2019 @11:42AM (#20392881)
An IP address like 127.0.0.1 is an integer, written in an odd base 256 notation! What I think you mean is that it's easier to increment an integer written in conventional base 10, because people are used to working with numbers like that.
Re:There’s more than one way to write an IP address by jolmg on Tuesday July 09, 2019 @12:14PM (#20393329)
I'm imagining magmastonealex found it useful for things like working with each of 10.0.0.0/16 without having to manage the digits of those base-256 numbers:

  for (var i = 0; i < 2 ** 16; i++) {
    work("10.0." + i);
  }
as opposed to

  for (var i = 0; i < 2 ** 16; i++) {
    work("10.0." + i / 256 + "." + i % 256);
  }
Re:There’s more than one way to write an IP address by maddyboo on Wednesday July 10, 2019 @02:44AM (#20399669)
This is neat!

Here's a JS version:

  > const ip2dec = ip => ip.split(".").reverse().reduce((acc, n, i) => acc + (parseInt(n) * (2 ** (i * 8))), 0)
  > ip2dec("192.168.0.1")
  3232235521
  > ip2dec("192.168.1.1")
  3232235777
  > ip2dec("0xDE.0xAD.0xBE.0xEF")
  3735928559