2011/4/28 Daniel-Constantin Mierla <daniel(a)kamailio.org>rg>:
Btw, when was the idea that IP comparison is string
comparison thrown here,
I missed any email?!? To be sure the comparison is done right, then the
string with the IPs have to be converted to binary and the results compared.
The point is that IPv4 comparisons are valid as a pure string
comparison. Note that being strict, the following IPv4 is not valid:
"1.2.3.04"
See RFC 5954 "Essential Correction for IPv6 ABNF and URI Comparison in
RFC 3261":
IPv4address = dec-octet "." dec-octet "." dec-octet
"." dec-octet
dec-octet = DIGIT ; 0-9
/ %x31-39 DIGIT ; 10-99
/ "1" 2DIGIT ; 100-199
/ "2" %x30-34 DIGIT ; 200-249
/ "25" %x30-35 ; 250-255
So comparing two IPv4 as pure strings would work (except if you want
to perform network comparison with mask and so).
Obviously under IPv6 binary comparison is needed (this is what my
function does).
--
Iñaki Baz Castillo
<ibc(a)aliax.net>