Closed DogukanErgun closed 6 months ago
After writing this, I have tried the curl_impersonate binaries from the other repository.
Simply executing:
/curl_chrome99 --interface "IPv6 HERE" https://ifconfig.me/ip'
returns
curl: (45) Couldn't bind to 'IPv6 HERE'
while it works for the binaries on 0.6.0b9.
If keeping this here does not make sense, I can create a new issue at the other repository.
Thanks for experimenting, I transferred the issue here for better tracking.
Can you add the --verbose
flag and post the results here?
/curl_chrome99 --verbose --interface "IPv6 HERE" https://ifconfig.me/ip
Add does it work for normal curl
on your machine?
Sure, v0.6.0 with --verbose
output:
./curl_chrome99 --interface "MY IPv6'" https://ifconfig.me/ip --verbose
* Trying 34.117.118.44:443...
* Could not resolve host: 'MY IPv6'
* Couldn't bind to 'MY IPv6'
* Failed to connect to ifconfig.me port 443 after 17 ms: Failed binding local connection end
* Closing connection 0
curl: (45) Couldn't bind to 'MY IPv6'
Normal curl
works without any issue. The output with normal curl:
curl --interface "MY IPv6'" https://ifconfig.me/ip --verbose
* Trying 34.117.118.44:443...
* Name 'MY IPv6'' family 2 resolved to 'MY IPv6'' family 10
* Trying 2600:1901:0:bbc3:::443...
* Hostname MY IPv6' was found in DNS cache
* Name 'MY IPv6'' family 10 resolved to 'MY IPv6'' family 10
* Local port: 0
* Connected to ifconfig.me (2600:1901:0:bbc3::) port 443 (#0)
I have truncated the rest of the log.
I though it might be related to name resolution, so I have provided the target ipv6 address but it still fails with:
./curl_chrome99 --interface "MY IPv6'" https://ifconfig.me/ip --verbose --resolve "ifconfig.me:443:2600:1901:0:bbc3::"
* Ignoring resolve address '2600:1901:0:bbc3::', missing IPv6 support.
* Couldn't parse CURLOPT_RESOLVE entry 'ifconfig.me:443:2600:1901:0:bbc3::'
curl: (49) Couldn't parse CURLOPT_RESOLVE entry 'ifconfig.me:443:2600:1901:0:bbc3::'
This works with normal curl too
curl --interface "MY IPv6" https://ifconfig.me/ip --verbose --resolve "ifconfig.me:443:2600:1901:0:bbc3::"
* Added ifconfig.me:443:2600:1901:0:bbc3:: to DNS cache
* Hostname ifconfig.me was found in DNS cache
* Trying 2600:1901:0:bbc3:::443...
* Name 'MY IPv6' family 10 resolved to 'MY IPv6' family 10
* Local port: 0
* Connected to ifconfig.me (2600:1901:0:bbc3::) port 443 (#0)
My curl version:
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.16
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
Oh, it says missing ipv6 support, maybe some build flag went wrong?
Edit: Yeah, ipv6 only websites are inaccessible, without even using --interface
flag
Edit2: Just built the executable from sources using the install guide on tag v0.6.0. on the machine I am doing the experiments, everything is OK. Could there be something wrong with the workflow scripts?
curl_cffi==0.6.2 on PyPI and yifeikong/curl-impersonate v0.6.1 have been released to address this issue.
Describe the bug It is not possible to bind to an IPv6 address while creating
requests.Session(impersonate="chrome99", interface="ipv6_here")
Binding to ipv4 works. The feature works until v0.6.0, it is broken for both 0.6.0 and 0.6.1 It works on 0.6.0b9To Reproduce
Error Output
Expected behavior Requests use the specified ip address for HTTP calls.
Versions
Additional context