ID:               50830
 Comment by:       mikerushton at hotmail dot co dot uk
 Reported By:      mikerushton at hotmail dot co dot uk
 Status:           Open
 Bug Type:         Filter related
 Operating System: *
 PHP Version:      5.*, 6
 New Comment:

An addition: here's my solution (as a regular expression):

(?:(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9](?
::|$)){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?
::[a-f0-9]{1,4}){0,5})?)))|(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-
9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-
9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?))?(?:(?
:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-
5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))


Previous Comments:
------------------------------------------------------------------------

[2010-01-24 15:45:29] mikerushton at hotmail dot co dot uk

Description:
------------
FILTER_VALIDATE_IP validates the incorrect 0:::255.255.255.255 and does

not validate the correct 0::255.255.255.255

According to RFC 5321, the correct syntax is:

[IPv6-hex *3(":" IPv6-hex)] "::" [IPv6-hex *3(":" IPv6-hex) ":"] IPv4-
address-literal

This does not allow for three consecutive colons.

Reproduce code:
---------------
// First

filter_var('FFFF:::255.255.255.255', FILTER_VALIDATE_IP);

// Second

filter_var('FFFF::255.255.255.255', FILTER_VALIDATE_IP);

Expected result:
----------------
// First

bool(false)

// Second

string(21) 'FFFF::255.255.255.255'

Actual result:
--------------
// First

string(22) 'FFFF:::255.255.255.255'

// Second

bool(false)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=50830&edit=1

Reply via email to