guzzle / guzzle

Guzzle, an extensible PHP HTTP client

Home Page:https://docs.guzzlephp.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to parse URI in Ipv6

huankong233 opened this issue · comments

Guzzle version(s) affected: 7.8.1
PHP version: 8.2.3
cURL version: 7.86.0 and 8.4.0

Description
Unable to parse URI in Ipv6.
But I can download with this link in IDM.
Tip: This link may have an expiration date.

How to reproduce
using with laravel v10.10

<?php

namespace App\Http\Controllers;

use GuzzleHttp\Client;

class TestController extends Controller
{
    public function test()
    {
        $http = new Client();
        $http->head("http://[2409:801a:3000:0020::111.40.186.36]/b/nd6.baidupcs.com/file/58f92ed2289e66ff59a671f183c2c569?bkt=en-038bee77e919b76a2b7812a7a3787805152a8e1754ed45aeedf889a9b43b10f72addc99ed956f769&xcode=fe2f6303a15fb93c6cdc96afc010f5331fe740094d5344fbe9b30fb9fe052f298872b699484ffd41&fid=324121579-250528-761385912993830&time=1700229887&sign=FDTAXUbGERQlBHSKfqiu-DCb740ccc5511e5e8fedcff06b081203-Ur4fyDLYPj1a4hfAPLRRKq6z3do%3D&to=nd6&size=8255082&sta_dx=8255082&sta_cs=4183&sta_ft=zip&sta_ct=7&sta_mt=5&fm2=MH%2CBaoding%2CAnywhere%2C%2C%E6%B2%B3%E5%8D%97%2Ccmnet&ctime=1569282612&mtime=1684732598&resv0=-1&resv1=0&resv2=rlim&resv3=5&resv4=8255082&vuk=264192701&iv=2&htype=&randtype=&tkbind_id=0&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=en-30ca520a677f9a8d9f058b10d66a1d1a8ae86580d28a98595e1bc6c6d8a51962baf13026f964fe91&expires=8h&rt=sh&r=726687287&vbdid=2503992598&fin=%E8%A7%86%E9%A2%91%E5%89%AA%E5%88%87%E5%90%88%E5%B9%B6%E5%99%A8.zip&rtype=1&dp-logid=525511616800316189&dp-callid=0.1&tsl=0&csl=0&fsl=-1&csign=ygoiUO9Yb4pT5U7tcKi6geiBbv8%3D&so=1&ut=1&uter=0&serv=0&uc=3031334550&ti=b901726ac386759c2ad33676c7e4eeadd357324b9da7620d305a5e1275657320&hflag=10&from_type=3&adg=c_10cab0304460e6c31ca6383e54bca004&reqlabel=250528_f_0d379c25691f1db02fd2dff786ffd19a_-1_e575750a3c4aa01749b9e79faa454520&by=themis&resvsflag=1-12-0-1-1-1", [
            'allow_redirects' => [
                'follow_redirects' => false,
                'track_redirects'  => true,
            ]
        ]);
    }
}

Possible Solution
I don't known.😫

Additional context
image

Can you show us a full stack trace. That screenshot is near useless. Possibly this is a curl bug - can you try with 8.4.0?

Can you show us a full stack trace. That screenshot is near useless. Possibly this is a curl bug - can you try with 8.4.0?

is this?

[2023-11-17 22:44:39] local.ERROR: Unable to parse URI: http://[2409:801a:3000:0020::111.40.186.36]/b/nd6.baidupcs.com/file/58f92ed2289e66ff59a671f183c2c569?bkt=en-038bee77e919b76a2b7812a7a3787805152a8e1754ed45aeedf889a9b43b10f72addc99ed956f769&xcode=fe2f6303a15fb93c6cdc96afc010f5331fe740094d5344fbe9b30fb9fe052f298872b699484ffd41&fid=324121579-250528-761385912993830&time=1700229887&sign=FDTAXUbGERQlBHSKfqiu-DCb740ccc5511e5e8fedcff06b081203-Ur4fyDLYPj1a4hfAPLRRKq6z3do%3D&to=nd6&size=8255082&sta_dx=8255082&sta_cs=4183&sta_ft=zip&sta_ct=7&sta_mt=5&fm2=MH%2CBaoding%2CAnywhere%2C%2C%E6%B2%B3%E5%8D%97%2Ccmnet&ctime=1569282612&mtime=1684732598&resv0=-1&resv1=0&resv2=rlim&resv3=5&resv4=8255082&vuk=264192701&iv=2&htype=&randtype=&tkbind_id=0&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=en-30ca520a677f9a8d9f058b10d66a1d1a8ae86580d28a98595e1bc6c6d8a51962baf13026f964fe91&expires=8h&rt=sh&r=726687287&vbdid=2503992598&fin=%E8%A7%86%E9%A2%91%E5%89%AA%E5%88%87%E5%90%88%E5%B9%B6%E5%99%A8.zip&rtype=1&dp-logid=525511616800316189&dp-callid=0.1&tsl=0&csl=0&fsl=-1&csign=ygoiUO9Yb4pT5U7tcKi6geiBbv8%3D&so=1&ut=1&uter=0&serv=0&uc=3031334550&ti=b901726ac386759c2ad33676c7e4eeadd357324b9da7620d305a5e1275657320&hflag=10&from_type=3&adg=c_10cab0304460e6c31ca6383e54bca004&reqlabel=250528_f_0d379c25691f1db02fd2dff786ffd19a_-1_e575750a3c4aa01749b9e79faa454520&by=themis&resvsflag=1-12-0-1-1-1 {"exception":"[object] (GuzzleHttp\Psr7\Exception\MalformedUriException(code: 0): Unable to parse URI: http://[2409:801a:3000:0020::111.40.186.36]/b/nd6.baidupcs.com/file/58f92ed2289e66ff59a671f183c2c569?bkt=en-038bee77e919b76a2b7812a7a3787805152a8e1754ed45aeedf889a9b43b10f72addc99ed956f769&xcode=fe2f6303a15fb93c6cdc96afc010f5331fe740094d5344fbe9b30fb9fe052f298872b699484ffd41&fid=324121579-250528-761385912993830&time=1700229887&sign=FDTAXUbGERQlBHSKfqiu-DCb740ccc5511e5e8fedcff06b081203-Ur4fyDLYPj1a4hfAPLRRKq6z3do%3D&to=nd6&size=8255082&sta_dx=8255082&sta_cs=4183&sta_ft=zip&sta_ct=7&sta_mt=5&fm2=MH%2CBaoding%2CAnywhere%2C%2C%E6%B2%B3%E5%8D%97%2Ccmnet&ctime=1569282612&mtime=1684732598&resv0=-1&resv1=0&resv2=rlim&resv3=5&resv4=8255082&vuk=264192701&iv=2&htype=&randtype=&tkbind_id=0&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=en-30ca520a677f9a8d9f058b10d66a1d1a8ae86580d28a98595e1bc6c6d8a51962baf13026f964fe91&expires=8h&rt=sh&r=726687287&vbdid=2503992598&fin=%E8%A7%86%E9%A2%91%E5%89%AA%E5%88%87%E5%90%88%E5%B9%B6%E5%99%A8.zip&rtype=1&dp-logid=525511616800316189&dp-callid=0.1&tsl=0&csl=0&fsl=-1&csign=ygoiUO9Yb4pT5U7tcKi6geiBbv8%3D&so=1&ut=1&uter=0&serv=0&uc=3031334550&ti=b901726ac386759c2ad33676c7e4eeadd357324b9da7620d305a5e1275657320&hflag=10&from_type=3&adg=c_10cab0304460e6c31ca6383e54bca004&reqlabel=250528_f_0d379c25691f1db02fd2dff786ffd19a_-1_e575750a3c4aa01749b9e79faa454520&by=themis&resvsflag=1-12-0-1-1-1 at C:\xampp\htdocs\94list-laravel\vendor\guzzlehttp\psr7\src\Uri.php:85)
[stacktrace]
#0 C:\xampp\htdocs\94list-laravel\vendor\guzzlehttp\psr7\src\Utils.php(458): GuzzleHttp\Psr7\Uri->__construct('http://[2409:80...')
#1 C:\xampp\htdocs\94list-laravel\vendor\guzzlehttp\guzzle\src\Client.php(161): GuzzleHttp\Psr7\Utils::uriFor('http://[2409:80...')
#2 C:\xampp\htdocs\94list-laravel\vendor\guzzlehttp\guzzle\src\Client.php(189): GuzzleHttp\Client->requestAsync('HEAD', 'http://[2409:80...', Array)
#3 C:\xampp\htdocs\94list-laravel\vendor\guzzlehttp\guzzle\src\ClientTrait.php(61): GuzzleHttp\Client->request('HEAD', 'http://[2409:80...', Array)
#4 C:\xampp\htdocs\94list-laravel\app\Http\Controllers\InstallController.php(21): GuzzleHttp\Client->head('http://[2409:80...', Array)
#5 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): App\Http\Controllers\InstallController->test()
#6 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction('test', Array)
#7 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\InstallController), 'test')
#8 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Route.php(205): Illuminate\Routing\Route->runController()
#9 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(799): Illuminate\Routing\Route->run()
#10 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#11 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#12 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#13 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(159): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#14 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(125): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#15 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php(87): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\Http\Request), Object(Closure), 'api', Object(Closure))
#16 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), 'api')
#17 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#18 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(798): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#19 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(777): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#20 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(741): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#21 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Routing\Router.php(730): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#22 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(200): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#23 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#24 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php(89): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#33 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#34 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Http\Middleware\HandleCors.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Http\Middleware\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Http\Middleware\TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(175): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#40 C:\xampp\htdocs\94list-laravel\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#41 C:\xampp\htdocs\94list-laravel\public\index.php(51): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#42 {main}
"}

I am using the latest version of xampp. I don't know how to update php_curl.php. If I replace it with the new version, it will cause a crash.

image

strange, huh?

image
image

normal ipv6 is right

but not work in this one http://[2409:801a:3000:0020::111.40.186.36]

Maybe another standard?

image
image

image
works fine in IDM

What version of guzzlehttp/psr7 do you have. Do you have additional copies globally installed, as well as locally?

[2409:801a:3000:0020::111.40.186.36] is actually an invalid IPv6 address. I don't think there is an issue here.

Oh, hmmm. I guess we don't include the optional IPv4 component at this time.

[2409:801a:3000:0020::111.40.186.36] is actually an invalid IPv6 address. I don't think there is an issue here.

i ask the newbing,she said the same word,but i don't known why idm can work well with this link,or how can i solve this problem?😭

What version of guzzlehttp/psr7 do you have. Do you have additional copies globally installed, as well as locally?

https://github.com/huankong233/94list-laravel/blob/main/composer.lock

this is my lock file

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 2 weeks if no further activity occurs. Thank you for your contributions.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 2 weeks if no further activity occurs. Thank you for your contributions.

undone yet 😉

Closing since there is no capacity on our side to fix this. We'd accept external contributions, however.