Andy has some concerns about future proofing. In this case, he sends us some C# code that’s supposed to validate an IP address.
string[] address = StringTools.splitStr(IP, ‘.’);
if (address.length < 4) {
throw new Exception(“Bad IP format : “ + IP); }
Andy writes: “IPv6 will never be a thing!”
It’s not just IPv6, of course. There are plenty of ways one might choose to represent an IP address that don’t use dot decimal notation- any 32 bit integer is potentially an IP address. But we usually represent the IP address this way. No, there’s another problem with this particular parser: it checks in address.length < 4.
Now, this is actually genius. You see, our choices are IPv4 (32 bits of addresses), or IPv6 (128 bits of addresses), but what if we only want, oh, I don’t know, 40 bits? Well, this code will think 555.192.168.0.1 is a perfectly valid IP address, and frankly, why shouldn’t it be? A perfect bridge between IPv4 and IPv6. I’d call it IPv5, except for the fact that we had to skip 5 because of weird reasons.
Also, C# already has a function for parsing IP addresses which also has the benefit of doing it correctly.
Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!
Source: Read MoreÂ