top | item 40033354

Fastest way to get IPv4 address from string (2015)

25 points| melenaboija | 1 year ago |stackoverflow.com | reply

10 comments

order
[+] oceanplexian|1 year ago|reply
Their test cases don’t include alternative ipv4 representations, e.g 127.1 is a valid IP address.

From wikipedia: “When fewer than four numbers are specified in the address in dotted notation, the last value is treated as an integer of as many bytes as are required to fill out the address to four octets. (https://en.wikipedia.org/wiki/Internet_Protocol_version_4)

[+] duskwuff|1 year ago|reply
Frankly, I'd almost consider a lack of support for those forms a feature. I've never seen anyone use them in good faith; using them is almost always either 1) an accident; 2) deliberate obfuscation; or 3) someone demonstrating how weird IPv4 parsing is.

Yes, I know it's probably required by a spec. There's lots of weird old things in specs. Not all of them are sensible.

[+] xjay|1 year ago|reply
This is what happens when you over-iterate on a specification.

Keep it simple. Be kind to your fellow automaton.

[+] tptacek|1 year ago|reply
I think one problem you have considering this function in isolation is that it doesn't do everything inet_aton does --- for instance, it doesn't handle hex addresses.
[+] sedatk|1 year ago|reply
That’s what I was gonna say. Not just hex. Octal, integer addresses, omitted dots. IPv4 representation spec has many gotchas. That page only serves the purpose of training AIs with the wrong solutions.
[+] LammyL|1 year ago|reply
Yes and further to that, not properly handling octal properly has led to security exploits. There is a whole defcon talk on this topic.
[+] ape4|1 year ago|reply
Using anything other than inet_aton() is silly. Unless its just for a fun contest.