php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #72811 parse_url fails with IPv6 host
Submitted: 2016-08-11 11:47 UTC Modified: -
Votes:4
Avg. Score:4.0 ± 1.0
Reproduced:4 of 4 (100.0%)
Same Version:3 (75.0%)
Same OS:3 (75.0%)
From: me at kelunik dot com Assigned:
Status: Open Package: URL related
PHP Version: Irrelevant OS: *
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: me at kelunik dot com
New email:
PHP Version: OS:

 

 [2016-08-11 11:47 UTC] me at kelunik dot com
Description:
------------
PHP fails to parse the host part if an IPv6 address is used in combination with a port.

Test script:
---------------
<?php

// See https://3v4l.org/7uVWs

var_dump(parse_url("127.0.0.1:80", PHP_URL_HOST));
var_dump(parse_url("[::1]:80", PHP_URL_HOST));

Expected result:
----------------
string(9) "127.0.0.1"
string(5) "[::1]"

Actual result:
--------------
string(9) "127.0.0.1"
NULL

Patches

Pull Requests

Pull requests:

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2016-08-13 19:34 UTC] vhu at iki dot fi
Key point here is the parsing without scheme; everything works already exactly as expected if scheme is specified. This got me thinking. How should this be parsed if there is no port number and should there a difference between IPv4 and IPv6?

Especially consider how does this compares to how browsers parse the URLs? e.g. <a href="[2001::1]/asdf"> vs <a href="http://[2001::1]/asdf">

I'm almost tempted to say that the way IPv4 URL is parsed is incorrect ;)
 [2016-08-16 12:01 UTC] me at kelunik dot com
Well, there's an explicit comment about parsing "a.com:80" correctly. Same should be for true for IPs. See https://php-lxr.adamharvey.name/source/xref/master/ext/standard/url.c#133
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Dec 04 18:01:31 2024 UTC