[122219] in North American Network Operators' Group
Re: Regular Expression for IPv6 addresses
daemon@ATHENA.MIT.EDU (Mark Andrews)
Tue Feb 9 17:13:00 2010
To: Thomas Habets <thomas@habets.pp.se>
From: Mark Andrews <marka@isc.org>
In-reply-to: Your message of "Tue, 09 Feb 2010 16:01:19 BST."
<alpine.DEB.1.10.1002091548170.25663@red.crap.retrofitta.se>
Date: Wed, 10 Feb 2010 09:12:11 +1100
Cc: nanog@nanog.org, "Richard E. Brown" <Richard.E.Brown@dartware.com>
Errors-To: nanog-bounces+nanog.discuss=bloom-picayune.mit.edu@nanog.org
In message <alpine.DEB.1.10.1002091548170.25663@red.crap.retrofitta.se>, Thomas
Habets writes:
> On Fri, 5 Feb 2010, Mark Andrews wrote:
> > And now for the trick question. Is ::ffff:077.077.077.077 a legal
> > mapped address and if it, does it match 077.077.077.077?
>
> Forget IPv6. The first question is does 077.077.077.077 match
> 077.077.077.077 in IPv4?
I think you meant "does 077.077.077.077 match 77.77.77.77 in IPv4".
> The answer is a long one full of different answers depending on
> who's doing the parsing (gethostbyname(), inet_aton(),
> inet_net_pton(), etc..) and on what OS. And also on many bugs.
Indeed. It's a minefield out there for application developers that
want consistancy. Even when you develop your own some OS vendor will
go and stuff it up on you.
> And don't count on the documentation being right either, or parsers
> respecting standards (single unix or RFCs, or which one when they
> conflict). And don't expect an error code if you feed 080.080.080.080
> into a parser, even one that *does* read it as octal.
>
> Don't prefix IP (v4) address octets with zero wether you expect it to be
> treated as octal or not. Just don't. World of hurt and all that.
>
> E.g.:
> http://kerneltrap.org/mailarchive/openbsd-bugs/2009/6/6/5882713/thread
>
> We should all do like one vendor I've seen where you enter the IP (v4)
> address in binary... and then pad with zeroes to whatever size html form
> wanted. Yes, this decade.
>
> ---------
> typedef struct me_s {
> char name[] = { "Thomas Habets" };
> char email[] = { "thomas@habets.pp.se" };
> char kernel[] = { "Linux" };
> char *pgpKey[] = { "http://www.habets.pp.se/pubkey.txt" };
> char pgp[] = { "A8A3 D1DD 4AE0 8467 7FDE 0945 286A E90A AD48 E854" };
> char coolcmd[] = { "echo '. ./_&. ./_'>_;. ./_" };
> } me_t;
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: marka@isc.org