Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I just cut & paste the IPv6 I found in a Wikipedia. But that does touch on a good point... the formatting for how to express an IPv6 number is more complicated. The fact that 2001:0db8:0000:0000:0000:ff00:0042:8329 can be shorted to 2001:db8::ff00:42:8329 is less simpler to figure out than the good ol' <8bits>.<8bits>.<8bits>.<8bits> IPv4 format (at least that is true for me).


It's not that complicated. You can add leading zeros into each field, but that's similar to how 192.168.0.1 can be written as 192.168.000.001 (but if you do that in v4, it turns the field into octal! At least in v6 it's just a superfluous 0.). The only real complication is ::, which just means "insert zeros here".

(192.168.0.1 can also be written as 192.168.1, 192.11010049 or 3232235521. Or 192.0xa80001. Or 0xc0.0xa80001. Or 0300.168.1. Or a good number of other ways. That's far worse than anything you can do to a v6 address.)


> but that's similar to how 192.168.0.1 can be written as 192.168.000.001

I would advise you not to do that. Some systems read the numbers with atoi(), which will interpret a leading zero as a prefix for 'octal' like in C.


For example, in Ruby...

  irb(main):001:0> require 'ipaddr'
  => true
  IPAddr.new("000.000.000.000").ipv4? 
  IPAddr::InvalidAddressError (zero-filled number in IPv4 address is ambiguous: 000.000.000.000)


well that won't make a difference for 0.1 :)


Yup, I was paying attention to that. Note how adding a leading 0 to 192 made it 0300.

And people think this is easier than v6, where adding a 0 to db8 just makes it 0db8...?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: