Giter VIP home page Giter VIP logo

curl-impersonate-win's Introduction

curl-impersonate-win

A special build of curl for Windows that can impersonate Chrome and Safari.

Original idea and patches from https://github.com/lwthiker/curl-impersonate

Version

Current version based on:

Environment

MSYS2 is needed to build binaries. Steps:

  1. Download and install MSYS2 (https://www.msys2.org/) into folder c:\msys64\
  2. Run MSYS2 from start menu and update packages with command: pacman -Suy
  3. Install additional packages: pacman -S patch mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-nasm mingw-w64-x86_64-gcc mingw-w64-x86_64-go

Build

  1. Clone this repository with --recursive attribute to get BoringSSL and Curl submodules.
  2. Run script copy_and_patch.bat to copy original source codes to patchable directories and patch source code.
  3. Run script build.bat to build binaries. Ready to use binaries are located within curl\bin folder.

In case if everything goes fine you should see this:

image

Run

Executables and scripts are located inside release archive. Scripts can impersonate different browser, for example:

curl_chrome104 --url https://www.google.com/search?q=cat --output google.html

curl_safari15_5 --url https://www.apple.com --output apple.html

curl-impersonate-win's People

Contributors

depler avatar norbis3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curl-impersonate-win's Issues

Submodules for BoringSSL and Curl

Hello,

would be nice to have dependencies as Submodules for git. You can download everything with the --recursive attribute on the git clone at one time.

Issue building while running "mingw32-make mingw32-clean" and "mingw32-make mingw32 -j"

after setting up necessary packages in msys2 and patching sources, running build.bat, i encounter the following errors after moving into the curl source directory and running "mingw32-make mingw32-clean":

image

Next, it attempts to run "mingw32-make mingw32 -j", failing at the very end:
image

As expected, because of this error (most likely), directory "lib" in the curl source tree is empty
What should I be doing to fix this? Here is a screenshot of my environment variables, if they are of any use:
image
image
My path variable has nothing on it that would interfere, but I can post it if you want.

there is no 'curl' and 'boringssl' directory

How to clone this repository? I have aproblem with that:
"Clone this repository with --recursive attribute to get BoringSSL and Curl submodules."

Just copy the "boringssl_original" to "boringssl"?

"ninja.exe -C lib crypto ssl" problem

I got this error (find attached the full log):
F:\curl-impersonate-win-main\boringssl>ninja.exe -C lib crypto ssl
ninja: Entering directory `lib'
[32/308] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.obj
In file included from F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/bcm.c:31:
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u32_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:868:3,
inlined from 'sha256_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha256.c:150:5,
inlined from 'SHA224_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha256.c:168:10:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n
);
| ^~~~~~~~~~~~~~~~~~~
In file included from F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/bcm.c:104:
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha256.c: In function 'SHA224_Final':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha256.c:164:26: note: at offset 28 into destination object 'out' of size [0, 28]
164 | int SHA224_Final(uint8_t out[SHA224_DIGEST_LENGTH], SHA256_CTX *ctx) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA384_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:167:10,
inlined from 'SHA384' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:132:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
In file included from F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/bcm.c:105:
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA384':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:128:25: note: at offset 48 into destination object 'out' of size [0, 48]
128 | uint8_t out[SHA384_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA384_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:167:10,
inlined from 'SHA384' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:132:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA384':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:128:25: note: at offset 56 into destination object 'out' of size [0, 48]
128 | uint8_t out[SHA384_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA512_256_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:182:10,
inlined from 'SHA512_256' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:152:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA512_256':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:148:29: note: at offset 32 into destination object 'out' of size [0, 32]
148 | uint8_t out[SHA512_256_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA512_256_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:182:10,
inlined from 'SHA512_256' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:152:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA512_256':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:148:29: note: at offset 40 into destination object 'out' of size [0, 32]
148 | uint8_t out[SHA512_256_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA512_256_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:182:10,
inlined from 'SHA512_256' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:152:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA512_256':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:148:29: note: at offset 48 into destination object 'out' of size [0, 32]
148 | uint8_t out[SHA512_256_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA512_256_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:182:10,
inlined from 'SHA512_256' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:152:3:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA512_256':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:148:29: note: at offset 56 into destination object 'out' of size [0, 32]
148 | uint8_t out[SHA512_256_DIGEST_LENGTH]) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA384_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:167:10:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA384_Final':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:163:26: note: at offset 48 into destination object 'out' of size [0, 48]
163 | int SHA384_Final(uint8_t out[SHA384_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In function 'OPENSSL_memcpy',
inlined from 'CRYPTO_store_u64_be' at F:/curl-impersonate-win-main/boringssl/crypto/internal.h:879:3,
inlined from 'sha512_final_impl' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:273:5,
inlined from 'SHA384_Final' at F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:167:10:
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c: In function 'SHA384_Final':
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:163:26: note: at offset 56 into destination object 'out' of size [0, 48]
163 | int SHA384_Final(uint8_t out[SHA384_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/internal.h: In function 'SHA512_256_Final':
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:178:30: note: at offset 32 into destination object 'out' of size [0, 32]
178 | int SHA512_256_Final(uint8_t out[SHA512_256_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:178:30: note: at offset 40 into destination object 'out' of size [0, 32]
178 | int SHA512_256_Final(uint8_t out[SHA512_256_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:178:30: note: at offset 48 into destination object 'out' of size [0, 32]
178 | int SHA512_256_Final(uint8_t out[SHA512_256_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/internal.h:824:10: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
824 | return memcpy(dst, src, n);
| ^~~~~~~~~~~~~~~~~~~
F:/curl-impersonate-win-main/boringssl/crypto/fipsmodule/sha/sha512.c:178:30: note: at offset 56 into destination object 'out' of size [0, 32]
178 | int SHA512_256_Final(uint8_t out[SHA512_256_DIGEST_LENGTH], SHA512_CTX *sha) {
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[308/308] Linking CXX static library ssl\libssl.a
...

_LIBZ -DHAVE_ZLIB_H -DHAVE_ZSTD -DHAVE_BROTLI -DUSE_LIBIDN2 -DENABLE_IPV6 -c vauth/krb5_sspi.c -o vauth/krb5_sspi.o
http.c: In function 'Curl_http_merge_headers':
http.c:2093:7: warning: unused variable 'i' [-Wunused-variable]
2093 | int i;
| ^
...

_LIBZ -DHAVE_ZLIB_H -DHAVE_ZSTD -DHAVE_BROTLI -DUSE_LIBIDN2 -DENABLE_IPV6 -c vssh/wolfssh.c -o vssh/wolfssh.o
windres --include-dir=../include -DDEBUGBUILD=0 -O coff -F pe-x86-64 -i libcurl.rc -o libcurl.res
vtls/openssl.c: In function 'parse_sig_algs':
vtls/openssl.c:354:19: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
354 | for (i = 0; i < MAX_SIG_ALGS; i++) {
| ^
vtls/openssl.c: In function 'DecompressZlibCert':
vtls/openssl.c:2741:29: warning: unused parameter 'ssl' [-Wunused-parameter]
2741 | int DecompressZlibCert(SSL ssl,
| ~~~~~^~~
vtls/openssl.c: In function 'DecompressBrotliCert':
vtls/openssl.c:2786:31: warning: unused parameter 'ssl' [-Wunused-parameter]
2786 | int DecompressBrotliCert(SSL
ssl,
| ~~~~~^~~
vtls/openssl.c: In function 'add_cert_compression':
vtls/openssl.c:2847:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
2847 | for(i = 0; i < NUM_CERT_COMPRESSION_ALGS; i++) {
| ^
In file included from vtls/openssl.c:57:
vtls/openssl.c: In function 'ossl_connect_step1':
vtls/vtls.h:154:17: warning: pointer targets in passing argument 2 of 'SSL_add_application_settings' differ in signedness [-Wpointer-sign]
154 | #define ALPN_H2 "h2"
| ^~~~
| |
| char *
vtls/openssl.c:3560:51: note: in expansion of macro 'ALPN_H2'
3560 | SSL_add_application_settings(backend->handle, ALPN_H2, ALPN_H2_LENGTH,
| ^~~~~~~
In file included from vtls/openssl.c:65:
F:\curl-impersonate-win-main\boringssl/include/openssl/ssl.h:2880:74: note: expected 'const uint8_t *' {aka 'const unsigned char *'} but argument is of type 'char *'
2880 | OPENSSL_EXPORT int SSL_add_application_settings(SSL *ssl, const uint8_t *proto,
| ~~~~~~~~~~~~~~~^~~~~
gcc -m64 -s -static -shared -o libcurl.dll
...

no bianries:
MINGW64 /f/curl-impersonate-win-main

ls -la curl/bin

total 10132
drwxr-xr-x 1 Dave Nincs 0 Jun 22 15:06 .
drwxr-xr-x 1 Dave Nincs 0 Jun 22 15:06 ..
-rwxr-xr-x 1 Dave Nincs 4723712 Jun 22 15:06 curl.exe
-rw-r--r-- 1 Dave Nincs 1001802 Jun 22 15:06 libcurl.a
-rwxr-xr-x 1 Dave Nincs 4573696 Jun 22 15:06 libcurl.dll
-rw-r--r-- 1 Dave Nincs 58418 Jun 22 15:06 libcurldll.a

FULL_LOG.txt

New Build

I created a new build. Did curl.exe --version and got

Release-Date: 2023-10-11
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets

I guess my question is, do I have to complete other steps to pull the latest from https://github.com/lwthiker/curl-impersonate/releases or is that done automatically?

Looking for WebSocket support.

Is there any way to change TLS finger?

Cuz some sites even can detect new curl. With GET no problem but POST cant bypass properly sometimes. Tried that curl_chrome116 -X POST https://stake.com/_api/graphql -H "Connection: keep-alive" -H "x-language: en" -H "Keep-Alive: timeout=5, max=100" -H "Accept: application/graphql+json, application/json" -H "Accept-Language: en-US,en;q=0.5" -H "Content-Type: application/json" --json '{"query":"query ActiveRacesStatus {\n activeRaces {\n id\n status\n scope\n }\n}\n","variables":{"limit":10}}' --tlsv1.3 --include --tls13-ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA --http2 --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA with ciphers but no luck. I know that with different TLS emulation works pretty fine. So any way to change it or mb some fixes you know brothers?

URL Parameters don't work

curl_chrome110.bat -s 'https://example.org/urlparam&urlparam1=1&urlparam2=2'

'urlparam1' is not recognized as an internal or external command,
operable program or batch file.
'urlparam2' is not recognized as an internal or external command,
operable program or batch file.

ming compile error

Not a project issue - Information only!

This would be great for my purposes.
I need to just check that a site is actually 'up' (via HEAD or GET).

I have some sites (all https, using Cloudflair) that just time out using Curl (or ping, or tracert), but run fine from a browser.
I updated MSYS, followed your directions and was off to the races when compilation stopped.

Here's the last error:

windres --include-dir=../include -DDEBUGBUILD=0 -O coff -F pe-x86-64 -i libcurl.rc -o libcurl.res
In file included from C:/msys64/mingw64/include/windef.h:9,
             from C:/msys64/mingw64/include/windows.h:69,
             from C:/msys64/mingw64/include/winsock2.h:23,
             from ../include/curl/system.h:408,
             from ../include/curl/curl.h:37,
             from curl_setup.h:161,
             from version.c:25:
C:/msys64/mingw64/include/minwindef.h:6:10: fatal error: ./specstrings.h: Invalid argument
    6 | #include <specstrings.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.

This looks like a ming error, but checking the include dir, specstrings.h is indeed there.
Any idea what ming wants to correct it?

Thanks for porting this to win, it'd be a lifesaver if I can get it to compile!

Configuring with WAMP

Hi,

I am using the precompiled curl-impersonate-win files: https://github.com/depler/curl-impersonate-win/releases/tag/7.84.0

I moved libcurl.dll to my PHP ext folder: C:\wamp\bin\php\php7.1.9\ext

Then, I updated php.ini, uncommenting this:

;extension=php_curl.dll

And adding this:

extension=libcurl.dll

However, it gives me the following error:

Fatal error: Uncaught Error: Call to undefined function curl_init()

I also tried simply replacing php_curl.dll with libcurl.dll from the precompiled binaries, but it also gives the same error.

Any ideas on how I can use this with WAMP?

GitHub actions build workflow

Is it possible to automatically build new binaries with github actions? I see that windows machines are available. With that implemented, the packages can be up-to-date with upstream curl-impersonate and no one need to build themselves.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.