Công cụ dòng lệnh dành cho nhà phát triển web. Viết yêu cầu HTTP bằng Curl

Chúng ta thường phải tải xuống nhiều tệp khác nhau từ Internet, ví dụ: Các tập tin thực thi chương trình, tập tin script, kho lưu trữ nguồn. Nhưng điều này không phải lúc nào cũng cần được thực hiện thông qua trình duyệt. Trong nhiều tình huống, việc thực hiện mọi hành động thông qua thiết bị đầu cuối sẽ dễ dàng hơn nhiều. Bởi vì bằng cách này bạn có thể tự động hóa quá trình. Mặt khác, quản trị viên web đôi khi phải kiểm tra khả năng truy cập trang web, kiểm tra tiêu đề đã gửi và nhận, v.v.

Để giải quyết các vấn đề như vậy và các vấn đề thuộc phạm vi tương tự, bạn có thể sử dụng tiện ích cuộn tròn. Nó cho phép bạn giải quyết nhiều vấn đề hơn, bao gồm cả việc mô phỏng hành động của người dùng trên trang web. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng Curl, nó là gì và tại sao cần có chương trình này.

Trên thực tế, Curl không chỉ là tiện ích dòng lệnh cho Linux hay Windows. Đây là một tập hợp các thư viện thực hiện khả năng cơ bản làm việc với các trang URL và truyền tệp. Thư viện hỗ trợ làm việc với các giao thức: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, cũng như POP3, IMAP và SMTP. Thật tuyệt vời khi mô phỏng hành động của người dùng trên các trang và các hoạt động khác bằng URL.

Hỗ trợ cho thư viện Curl đã được thêm vào nhiều ngôn ngữ và nền tảng lập trình khác nhau. Tiện ích cuộn tròn là một trình bao bọc độc lập cho thư viện này. Chính tiện ích này mà chúng tôi sẽ tập trung vào trong bài viết này.

lệnh cuộn tròn

Trước khi chuyển sang mô tả cách sử dụng lệnh linux linux, chúng ta hãy xem bản thân tiện ích này và các tùy chọn chính của nó mà chúng ta sẽ cần. Cú pháp của tiện ích rất đơn giản:

liên kết tùy chọn $curl

Bây giờ hãy xem xét các tùy chọn chính:

  • -# - hiển thị thanh tiến trình đơn giản trong quá trình tải;
  • -0 - sử dụng giao thức http 1.0;
  • -1 - sử dụng giao thức mã hóa tlsv1;
  • -2 - sử dụng sslv2;
  • -3 - sử dụng sslv3;
  • -4 - sử dụng ipv4;
  • -6 - sử dụng ipv6;
  • -MỘT- chỉ định USER_AGENT của bạn;
  • -b- lưu Cookie vào một tệp;
  • -c- gửi Cookie đến máy chủ từ một tệp;
  • -C- tiếp tục tải xuống tệp từ điểm ngắt hoặc phần bù được chỉ định;
  • -m- thời gian chờ đợi tối đa để nhận phản hồi từ máy chủ;
  • -d- gửi dữ liệu bằng phương thức POST;
  • -D- lưu các tiêu đề được máy chủ trả về vào một tệp;
  • -e- đặt trường Người giới thiệu-uri, cho biết người dùng đến từ trang nào;
  • -E- sử dụng chứng chỉ SSL bên ngoài;
  • -f- không hiển thị thông báo lỗi;
  • -F- gửi dữ liệu dưới dạng biểu mẫu;
  • -G- nếu tùy chọn này được bật thì tất cả dữ liệu được chỉ định trong tùy chọn -d sẽ được truyền bằng phương thức GET;
  • -H- chuyển tiêu đề đến máy chủ;
  • -TÔI- chỉ nhận tiêu đề HTTP và bỏ qua toàn bộ nội dung trang;
  • -j- đọc và gửi cookie từ một tập tin;
  • -J- xóa tiêu đề khỏi yêu cầu;
  • -L- chấp nhận và xử lý chuyển hướng;
  • -S - số tiền tối đa chuyển hướng sử dụng Vị trí;
  • -o- xuất nội dung trang vào một tập tin;
  • -O- lưu nội dung vào một tệp có tên của trang hoặc tệp trên máy chủ;
  • -P- sử dụng proxy;
  • --proto- chỉ ra giao thức được sử dụng;
  • -R- lưu thời gian sửa đổi cuối cùng của một tập tin từ xa;
  • -S- hiển thị tối thiểu thông tin về lỗi;
  • -S- hiển thị thông báo lỗi;
  • -T- tải tập tin lên máy chủ;
  • -v- đầu ra chi tiết nhất;
  • -y- tốc độ tải xuống tối thiểu;
  • -Y - tốc độ tối đa tải xuống;
  • -z- chỉ tải xuống tệp nếu nó được sửa đổi muộn hơn thời gian quy định;
  • -V- hiển thị phiên bản.

Đây hoàn toàn không phải là tất cả các tùy chọn dành cho Curl Linux, nhưng nó liệt kê những điều cơ bản mà bạn sẽ cần sử dụng.

Làm thế nào để sử dụng cuộn tròn?

Chúng ta đã trình bày mọi thứ liên quan đến lý thuyết làm việc với tiện ích cuộn tròn, bây giờ là lúc chuyển sang thực hành và xem các ví dụ về lệnh cuộn tròn.

Nhiệm vụ phổ biến nhất là đây. Việc tải tập tin rất đơn giản. Để thực hiện việc này, chỉ cần truyền tên file hoặc trang html cho tiện ích trong phần tham số:

cuộn tròn https://raw.githubusercontent.com/curl/curl/master/README.md

Nhưng ở đây có một điều ngạc nhiên đang chờ bạn: toàn bộ nội dung của tập tin sẽ được gửi tới đầu ra tiêu chuẩn. Để ghi nó vào bất kỳ tập tin nào, hãy sử dụng:

cuộn tròn -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md

Và nếu bạn muốn file kết quả được đặt tên giống với file trên máy chủ, hãy sử dụng tùy chọn -O:

cuộn tròn -O https://raw.githubusercontent.com/curl/curl/master/README.md

cuộn tròn -# -C - -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Nếu cần, bạn có thể tải xuống một số tệp bằng một lệnh:

cuộn tròn -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Một điều khác có thể hữu ích cho quản trị viên là chỉ tải xuống tệp nếu nó đã được sửa đổi:

Curl -z 21-12-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Giới hạn tốc độ

Bạn có thể giới hạn tốc độ tải xuống ở mức giới hạn được yêu cầu để không làm mạng bị quá tải bằng tùy chọn -Y:

cuộn tròn --limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Ở đây bạn cần chỉ định số kilobyte mỗi giây có thể được tải xuống. Bạn cũng có thể ngắt kết nối nếu tốc độ không đủ, sử dụng tùy chọn -Y để thực hiện việc này:

cuộn tròn -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md

Truyền tập tin

cuộn tròn -T login.txt ftp://speedtest.tele2.net/upload/

Hoặc hãy kiểm tra xem tệp có được gửi qua HTTP hay không; có một dịch vụ đặc biệt cho việc này:

cuộn tròn -T ~/login.txt http://posttestserver.com/post.php

Trong phản hồi, tiện ích sẽ cho bạn biết nơi bạn có thể tìm thấy tệp đã tải xuống.

Gửi dữ liệu POST

Bạn có thể gửi không chỉ các tệp mà còn bất kỳ dữ liệu nào bằng phương thức POST. Hãy để tôi nhắc bạn rằng phương pháp này được sử dụng để gửi dữ liệu ở nhiều dạng khác nhau. Để gửi yêu cầu như vậy, hãy sử dụng tùy chọn -d. Để thử nghiệm, chúng tôi sẽ sử dụng cùng một dịch vụ:

Curl -d "field1=val&fileld2=val1"http://posttestserver.com/post.php

Nếu bạn không hài lòng với tùy chọn gửi này, bạn có thể giả vờ gửi biểu mẫu. Có một tùy chọn cho việc này -F:

cuộn tròn -F "password=@pass;type=text/plain" http://posttestserver.com/post.php

Ở đây chúng tôi chuyển trường mật khẩu có dạng dưới dạng văn bản thuần túy, giống như cách bạn có thể chuyển một số tham số.

Gửi và nhận cookie

Cookie được các trang web sử dụng để lưu trữ một số thông tin nhất định từ phía người dùng. Điều này có thể cần thiết, ví dụ, để xác thực. Bạn có thể gửi và nhận Cookie bằng cách sử dụng Curl. Để lưu Cookie đã nhận vào một tệp, hãy sử dụng tùy chọn -c:

cuộn tròn -c cookie.txt http://posttestserver.com/post.php

Sau đó, bạn có thể gửi lại cookie cuộn tròn:

cuộn tròn -b cookie.txt http://posttestserver.com/post.php

Truyền tải và phân tích tiêu đề

Không phải lúc nào chúng ta cũng cần nội dung của trang. Đôi khi chỉ có tiêu đề mới có thể thú vị. Để chỉ hiển thị chúng, có tùy chọn -I:

cuộn tròn -I https://site

Và tùy chọn -H cho phép bạn gửi một số hoặc nhiều hơn đến máy chủ, ví dụ: bạn có thể chuyển tiêu đề If-Modified-Since để trang chỉ được trả về nếu nó đã được sửa đổi:

xác thực cuộn tròn

Nếu máy chủ yêu cầu một trong các loại xác thực phổ biến, chẳng hạn như HTTP Basic hoặc FTP, thì Curl có thể xử lý tác vụ này rất dễ dàng. Để chỉ định chi tiết xác thực, chỉ cần chỉ định chúng được phân tách bằng dấu hai chấm trong tùy chọn -u:

cuộn tròn -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Việc xác thực trên máy chủ HTTP sẽ được thực hiện theo cách tương tự.

Sử dụng proxy

Nếu bạn cần sử dụng máy chủ proxy để tải tập tin xuống thì việc đó cũng rất đơn giản. Chỉ cần chỉ định địa chỉ máy chủ proxy trong tùy chọn -x là đủ:

Curl -x proxysever.test.com:3128 http://google.co.in

kết luận

Trong bài viết này, chúng ta đã xem xét cách sử dụng Curl, tại sao cần có tiện ích này và các khả năng chính của nó. Mặc dù có sự giống nhau nhưng chúng rất khác nhau. Lệnh linux linux được thiết kế nhiều hơn để phân tích và mô phỏng các hành động khác nhau trên máy chủ, trong khi wget phù hợp hơn để tải xuống tệp và thu thập dữ liệu trang web.

URL c rất công cụ hữu ích dòng lệnh để truyền dữ liệu từ hoặc đến máy chủ. Curl hỗ trợ nhiều giao thức khác nhau như FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS và TFTP .

cURL có thể được sử dụng theo nhiều cách khác nhau và thú vị. Với công cụ này, bạn có thể tải xuống, tải lên và quản lý tệp, kiểm tra địa chỉ email hoặc thậm chí cập nhật trạng thái của mình trên một số trang web mạng xã hội hoặc kiểm tra thời tiết bên ngoài. Trong bài viết này, chúng ta sẽ xem xét năm cách sử dụng cơ bản và hữu ích nhất của công cụ cURL trên bất kỳ ứng dụng .

1. Kiểm tra URL

Một trong những cách sử dụng cURL phổ biến và đơn giản nhất là in chính lệnh theo sau là URL bạn muốn kiểm tra

Cuộn tròn https://domain.ru

Lệnh này sẽ hiển thị nội dung của URL trên thiết bị đầu cuối của bạn

2. Lưu đầu ra URL vào một tệp

Curl -o website https://domain.ru % Tổng % đã nhận % Xferd Tốc độ trung bình Thời gian Thời gian Tải lên Dload hiện tại Tổng chi tiêu còn lại Tốc độ 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2,9 triệu

Trong ví dụ này, kết quả đầu ra sẽ được lưu vào một tệp có tên 'trang web' trong thư mục làm việc hiện tại.

3. Tải tệp lên bằng Curl

Bạn có thể tải xuống tệp bằng Curl bằng cách thêm tùy chọn -o vào lệnh. Nó được sử dụng để lưu các tập tin trên máy chủ cục bộ có cùng tên như trên máy chủ từ xa

Curl -O https://domain.ru/file.zip

Trong ví dụ này, kho lưu trữ 'file.zip' sẽ được tải xuống thư mục làm việc hiện tại.

Bạn cũng có thể tải tệp có tên khác lên bằng cách thêm tùy chọn -o vào cURL.

Curl -o archive.zip https://domain.ru/file.zip

Vì vậy, kho lưu trữ 'file.zip' sẽ được tải xuống và lưu dưới dạng 'Archive.zip'.

cURL cũng có thể được sử dụng để tải xuống nhiều tệp cùng một lúc, như trong ví dụ bên dưới

Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip

Curl cũng có thể được sử dụng để tải tệp lên một cách an toàn qua SSH bằng lệnh sau

Curl -u người dùng sftp://server.domain.ru/path/to/file

Xin lưu ý rằng bạn phải sử dụng đường dẫn đầy đủ đến tệp bạn muốn tải xuống

4. Lấy thông tin từ HTTP header của website

Bạn có thể dễ dàng lấy thông tin tiêu đề HTTP từ bất kỳ trang web nào bằng cách thêm tùy chọn -I ('i') vào cURL.

Curl -I http://domain.ru HTTP/1.1 200 OK Ngày: Chủ Nhật, ngày 16 tháng 10 năm 2016 23:37:15 GMT Máy chủ: Apache/2.4.23 (Unix) X-Powered-By: Kết nối PHP/5.6.24 : đóng Loại nội dung: văn bản/html; bộ ký tự=UTF-8

5. Truy cập máy chủ FTP

Để truy cập máy chủ FTP từ sử dụng Curl, bạn cần sử dụng lệnh sau

Curl ftp://ftp.domain.ru --tên người dùng: mật khẩu

Curl sẽ kết nối với máy chủ FTP và liệt kê tất cả các file và thư mục trong thư mục chính của người dùng

Bạn có thể tải xuống tệp bằng FTP

Curl ftp://ftp.domain.ru/file.zip --tên người dùng: mật khẩu

và tải tập tin lên máy chủ FTP

Curl -T file.zip ftp://ftp.domain.ru/ --tên người dùng: mật khẩu

Bạn có thể kiểm tra trang Curl theo cách thủ công để xem mọi thứ Tùy chọn có sẵn cURL và chức năng của nó

người đàn ông uốn cong

Tái bút. Nếu bạn thích bài đăng này, hãy chia sẻ nó với bạn bè của bạn trên trong mạng xã hội bằng cách sử dụng các nút bên dưới hoặc đơn giản là để lại nhận xét. Cảm ơn.

uốn cong (1)
  • >> Xoăn (1) (tBЪOSH man: lPNBODSCH Y RTYLMBDOSH RTPZTBNNNSCH RPMSHЪPCHBFEMSHULZP HTPCHOS)
  • lMAYU Xoăn PVOBTHTSEO CH VBJE LMAYUECHSHI UMCH.
  • TÊN

    cuộn tròn - chuyển một URL

    TÓM TẮT

    Xoăn

    SỰ MIÊU TẢ

    Xoăn là một công cụ để truyền dữ liệu từ hoặc đến máy chủ, sử dụng một trong các giao thức được hỗ trợ (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP hoặc FILE). Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng.

    Curl cung cấp rất nhiều thủ thuật hữu ích như hỗ trợ proxy, xác thực người dùng, tải lên ftp, bài đăng HTTP, kết nối SSL (https:), cookie, tiếp tục truyền tệp và hơn thế nữa. Như bạn sẽ thấy bên dưới, số lượng tính năng sẽ khiến đầu óc bạn quay cuồng!

    Curl được cung cấp bởi libcurl cho tất cả các tính năng liên quan đến chuyển giao. Xem (3) để biết chi tiết.

    URL

    Cú pháp URL phụ thuộc vào giao thức. Bạn sẽ tìm thấy mô tả chi tiết trong RFC 3986.

    Bạn có thể chỉ định nhiều URL hoặc các phần của URL bằng cách viết các bộ phần trong dấu ngoặc nhọn như sau:

    hoặc bạn có thể nhận được chuỗi các chuỗi chữ và số bằng cách sử dụng như trong:

    Hiện tại, tính năng lồng các chuỗi không được hỗ trợ nhưng bạn có thể sử dụng nhiều chuỗi cạnh nhau:

    Bạn có thể chỉ định số lượng URL bất kỳ trên dòng lệnh. Chúng sẽ được tìm nạp một cách tuần tự theo thứ tự đã chỉ định.

    Vì Curl 7.15.1 bạn cũng có thể chỉ định bộ đếm bước cho các phạm vi để bạn có thể nhận được mọi số hoặc chữ cái thứ N:

    Nếu bạn chỉ định URL không có tiền tố Protocol://, Curl sẽ cố gắng đoán xem bạn muốn giao thức nào. Sau đó, nó sẽ mặc định là HTTP nhưng thử các giao thức khác dựa trên tiền tố tên máy chủ thường được sử dụng. Ví dụ: đối với tên máy chủ bắt đầu bằng "ftp." Curl sẽ cho rằng bạn muốn nói FTP.

    MÁY ĐO TIẾN ĐỘ

    Curl thường hiển thị đồng hồ đo tiến độ trong quá trình hoạt động, cho biết lượng dữ liệu được truyền, tốc độ truyền và thời gian ước tính còn lại, v.v.

    Tuy nhiên, vì Curl hiển thị dữ liệu đến thiết bị đầu cuối theo mặc định, nên nếu bạn gọi Curl để thực hiện một thao tác và nó chuẩn bị ghi dữ liệu vào thiết bị đầu cuối thì nó sẽ vô hiệu hóađồng hồ đo tiến độ nếu không nó sẽ làm rối đồng hồ đo tiến độ trộn đầu ra và dữ liệu phản hồi.

    Nếu bạn muốn đo tiến trình cho các yêu cầu HTTP POST hoặc PUT, bạn cần chuyển hướng đầu ra phản hồi sang một tệp, sử dụng chuyển hướng shell (>), -o hoặc tương tự.

    Trường hợp tải lên FTP không giống như vậy vì thao tác đó không đưa ra bất kỳ dữ liệu phản hồi nào tới thiết bị đầu cuối.

    Nếu bạn thích "thanh" tiến trình thay vì đồng hồ đo thông thường, -# là bạn của bạn.

    TÙY CHỌN

    -a/--append (FTP) Khi được sử dụng trong quá trình tải lên FTP, điều này sẽ yêu cầu Curl nối thêm vào tệp đích thay vì ghi đè lên nó. Nếu tập tin không tồn tại, nó sẽ được tạo.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ tắt chế độ chắp thêm lần nữa. -A/--tác nhân người dùng (HTTP) Chỉ định chuỗi Tác nhân người dùng để gửi đến máy chủ HTTP. Một số CGI được thực hiện kém sẽ không thành công nếu nó không được đặt thành "Mozilla/4.0". Để mã hóa các khoảng trống trong chuỗi, hãy bao quanh chuỗi bằng các dấu ngoặc đơn. Điều này cũng có thể được thiết lập bằng -H/--tiêu đề tất nhiên là tùy chọn.

    Nếu tùy chọn này được đặt nhiều lần thì tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. --anyauth (HTTP) Yêu cầu Curl tự tìm ra phương thức xác thực và sử dụng phương thức an toàn nhất mà trang web từ xa tuyên bố rằng nó hỗ trợ. Điều này được thực hiện bằng cách trước tiên thực hiện một yêu cầu và kiểm tra các tiêu đề phản hồi, do đó tạo ra một chuyến đi khứ hồi mạng bổ sung. Điều này được sử dụng thay vì đặt một phương thức xác thực cụ thể mà bạn có thể thực hiện với. --nền tảng, --tiêu, --ntlm, Và --thương lượng.

    Lưu ý rằng việc sử dụng --anyauth không được khuyến khích nếu bạn tải lên từ stdin, vì nó có thể yêu cầu gửi dữ liệu hai lần và sau đó máy khách phải có khả năng tua lại. Nếu có nhu cầu khi tải lên từ stdin, thao tác tải lên sẽ thất bại.

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -b/--cookie (HTTP) Truyền dữ liệu đến máy chủ HTTP dưới dạng cookie. Nó được cho là dữ liệu đã nhận được trước đó từ máy chủ trong dòng "Set-Cookie:". Dữ liệu phải ở định dạng "NAME1=VALUE1; NAME2=VALUE2".

    Nếu không có chữ cái "=" nào được sử dụng trong dòng thì nó sẽ được coi là tên tệp để sử dụng để đọc các dòng cookie được lưu trữ trước đó. Những dòng này sẽ được sử dụng trong phiên này nếu chúng khớp. Việc sử dụng phương pháp này cũng sẽ kích hoạt "trình phân tích cú pháp cookie", điều này cũng sẽ giúp ghi lại các cookie đến, điều này có thể hữu ích nếu bạn đang sử dụng phương pháp này kết hợp với -L/--vị trí lựa chọn. Định dạng tệp của tệp để đọc cookie phải là tiêu đề HTTP đơn giản hoặc định dạng tệp cookie Netscape/Mozilla.

    GHI CHÚ rằng tập tin được chỉ định với -b/--cookie chỉ được sử dụng làm đầu vào. Không có cookie sẽ được lưu trữ trong tập tin. Để lưu trữ cookie, hãy sử dụng -c/--cookie-jar tùy chọn hoặc thậm chí bạn có thể lưu tiêu đề HTTP vào một tệp bằng cách sử dụng -D/--dump-tiêu đề!

    Nếu tùy chọn này được đặt nhiều lần thì tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. -B/--use-ascii Bật truyền ASCII khi sử dụng FTP hoặc LDAP. Đối với FTP, điều này cũng có thể được thực thi bằng cách sử dụng URL kết thúc bằng ";type=A". Tùy chọn này khiến dữ liệu được gửi tới thiết bị xuất chuẩn ở chế độ văn bản cho hệ thống win32.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ vô hiệu hóa việc sử dụng ASCII. --basic (HTTP) Yêu cầu Curl sử dụng xác thực HTTP Basic. Đây là tùy chọn mặc định và tùy chọn này thường vô nghĩa, trừ khi bạn sử dụng nó để ghi đè tùy chọn đã đặt trước đó đặt phương thức xác thực khác (chẳng hạn như --ntlm, --tiêu--thương lượng).

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. --mật mã (SSL) Chỉ định mật mã nào sẽ sử dụng trong kết nối. Danh sách mật mã phải sử dụng mật mã hợp lệ. Đọc chi tiết danh sách mật mã SSL trên URL này: http://www.openssl.org/docs/apps/ciphers.html

    Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ ghi đè lên các tùy chọn khác. --compression (HTTP) Yêu cầu phản hồi nén bằng một trong các thuật toán mà libcurl hỗ trợ và trả về tài liệu không nén. Nếu tùy chọn này được sử dụng và máy chủ gửi mã hóa không được hỗ trợ, Curl sẽ báo lỗi.

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --kết nối-hết thời gian Thời gian tối đa tính bằng giây mà bạn cho phép thực hiện kết nối với máy chủ. Điều này chỉ giới hạn giai đoạn kết nối, khi cuộn tròn đã kết nối, tùy chọn này sẽ không còn tác dụng nữa. Xem thêm -m/--thời gian tối đa lựa chọn.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -c/--cookie-jar Chỉ định tệp nào bạn muốn cuộn tròn để ghi tất cả cookie sau khi hoàn thành thao tác. Curl ghi tất cả các cookie đã đọc trước đó từ một tệp được chỉ định cũng như tất cả các cookie nhận được từ (các) máy chủ từ xa. Nếu không có cookie nào được biết thì sẽ không có tập tin nào được ghi. Tệp sẽ được ghi bằng định dạng tệp cookie Netscape. Nếu bạn đặt tên tệp thành một dấu gạch ngang, "-", cookie sẽ được ghi vào thiết bị xuất chuẩn.

    GHI CHÚ Nếu không thể tạo hoặc ghi vào lọ cookie, toàn bộ thao tác cuộn tròn sẽ không thất bại hoặc thậm chí báo cáo lỗi một cách rõ ràng. Sử dụng -v sẽ hiển thị cảnh báo, nhưng đó là phản hồi rõ ràng duy nhất bạn nhận được về tình huống có thể gây chết người này.

    Nếu tùy chọn này được sử dụng nhiều lần, tên tệp được chỉ định cuối cùng sẽ được sử dụng. -C/--tiếp tục tại Tiếp tục/Tiếp tục quá trình truyền tệp trước đó ở khoảng thời gian đã cho. Phần bù đã cho là số byte chính xác sẽ bị bỏ qua tính từ đầu tệp nguồn trước khi nó được chuyển đến đích. Nếu được sử dụng với tải lên, lệnh máy chủ ftp SIZE sẽ không được sử dụng bởi Curl.

    Sử dụng "-C -" để yêu cầu cuộn tròn tự động tìm ra vị trí/cách tiếp tục chuyển. Sau đó, nó sử dụng các tệp đầu ra/đầu vào đã cho để tìm ra điều đó.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --create-dirs Khi được sử dụng cùng với tùy chọn -o, Curl sẽ tạo hệ thống phân cấp thư mục cục bộ cần thiết nếu cần. Tùy chọn này tạo các thư mục được đề cập bằng tùy chọn -o, không có gì khác. Nếu tên tệp -o không sử dụng thư mục hoặc nếu các thư mục mà nó đề cập đã tồn tại thì sẽ không có thư mục nào được tạo.

    Để tạo thư mục từ xa khi sử dụng FTP, hãy thử --ftp-tạo-dirs. --crlf (FTP) Chuyển đổi LF sang CRLF khi tải lên. Hữu ích cho MVS (OS/390).

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -d/--dữ liệu (HTTP) Gửi dữ liệu được chỉ định trong yêu cầu POST tới máy chủ HTTP, theo cách có thể mô phỏng như thể người dùng đã điền vào một biểu mẫu HTML và nhấn nút gửi. Lưu ý rằng dữ liệu được gửi chính xác như được chỉ định mà không cần xử lý thêm (với tất cả các dòng mới bị cắt). Dữ liệu dự kiến ​​sẽ được "mã hóa url". Điều này sẽ khiến Curl truyền dữ liệu đến máy chủ bằng cách sử dụng ứng dụng loại nội dung/x-www-form-urlencoded. So với -F/-dạng. Nếu tùy chọn này được sử dụng nhiều lần trên cùng một dòng lệnh, các phần dữ liệu được chỉ định sẽ được hợp nhất với nhau bằng ký tự & phân cách. Việc sử dụng "-d name=daniel -d Skill=lousy" sẽ tạo ra một đoạn bài trông giống như "Do đó name=daniel&skill=lousy".

    Nếu bạn bắt đầu dữ liệu bằng chữ cái @, phần còn lại phải là tên tệp để đọc dữ liệu từ đó hoặc - nếu bạn muốn cuộn tròn để đọc dữ liệu từ stdin. Nội dung của tệp phải được mã hóa url. Nhiều tập tin cũng có thể được chỉ định. Do đó, việc đăng dữ liệu từ một tệp có tên "foobar" sẽ được thực hiện bằng --dữ liệu@foobar".

    Để đăng dữ liệu hoàn toàn nhị phân, thay vào đó bạn nên sử dụng --data-nhị phân lựa chọn.

    -d/--dữ liệu cũng giống như --data-ascii.

    Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-ascii (HTTP) Đây là bí danh của -d/--dữ liệu lựa chọn.

    Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-nhị phân (HTTP) Điều này đăng dữ liệu theo cách tương tự như --data-ascii có, mặc dù khi sử dụng tùy chọn này, toàn bộ bối cảnh của dữ liệu đã đăng vẫn được giữ nguyên. Nếu bạn muốn đăng một tệp nhị phân mà không có tính năng dải dòng mới của --data-ascii tùy chọn, đây là dành cho bạn.

    Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --digest (HTTP) Cho phép xác thực HTTP Digest. Đây là một xác thực ngăn mật khẩu được gửi qua dây ở dạng văn bản rõ ràng. Sử dụng cái này kết hợp với cái bình thường -u/--người dùng tùy chọn để đặt tên người dùng và mật khẩu. Xem thêm --ntlm, --thương lượng--anyauth cho các lựa chọn liên quan.

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. --disable-eprt (FTP) Yêu cầu Curl tắt việc sử dụng các lệnh EPRT và LPRT khi thực hiện truyền FTP đang hoạt động. Thông thường, Curl sẽ luôn thử sử dụng EPRT trước, sau đó là LPRT trước khi sử dụng PORT, nhưng với tùy chọn này, nó sẽ sử dụng PORT ngay lập tức. EPRT và LPRT là các phần mở rộng của giao thức FTP gốc, có thể không hoạt động trên tất cả các máy chủ nhưng kích hoạt nhiều chức năng hơn theo cách tốt hơn lệnh PORT truyền thống.

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --disable-epsv (FTP) Yêu cầu Curl tắt việc sử dụng lệnh EPSV khi thực hiện truyền FTP thụ động. Thông thường, Curl sẽ luôn thử sử dụng EPSV trước PASV, nhưng với tùy chọn này, nó sẽ không thử sử dụng EPSV.

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -D/--dump-tiêu đề Viết các tiêu đề giao thức vào tệp được chỉ định.

    Tùy chọn này rất hữu ích khi bạn muốn lưu trữ các tiêu đề mà trang HTTP gửi cho bạn. Sau đó, cookie từ các tiêu đề có thể được đọc trong lệnh gọi cuộn thứ hai bằng cách sử dụng -b/--cookie lựa chọn! Các -c/--cookie-jar Tuy nhiên, tùy chọn này là cách tốt hơn để lưu trữ cookie.

    Khi được sử dụng trên FTP, các dòng phản hồi của máy chủ ftp được coi là "tiêu đề" và do đó được lưu ở đó.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -e/--người giới thiệu (HTTP) Gửi thông tin "Trang giới thiệu" đến máy chủ HTTP. Điều này cũng có thể được thiết lập bằng -H/--tiêu đề tất nhiên là cờ. Khi sử dụng với -L/--vị trí bạn có thể thêm ";auto" vào URL --referer để làm cho URL tự động đặt URL trước đó khi nó theo sau tiêu đề Vị trí:. Chuỗi ";auto" có thể được sử dụng một mình, ngay cả khi bạn không đặt --referer ban đầu.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --động cơ Chọn công cụ mã hóa OpenSSL để sử dụng cho các hoạt động mã hóa. Sử dụng --danh sách động cơđể in danh sách các công cụ được hỗ trợ trong thời gian xây dựng. Lưu ý rằng không phải tất cả (hoặc không có) công cụ nào có thể khả dụng trong thời gian chạy. --environment (CHỈ dành cho hệ điều hành RISC) Đặt một loạt các biến môi trường, sử dụng tên mà tùy chọn -w hỗ trợ, để cho phép trích xuất thông tin hữu ích dễ dàng hơn sau khi chạy cuộn tròn.

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. --egd-file (HTTPS) Chỉ định tên đường dẫn đến ổ cắm Daemon Entropy Gathering. Ổ cắm được sử dụng để tạo công cụ ngẫu nhiên cho các kết nối SSL. Xem thêm --tập tin ngẫu nhiên lựa chọn. -E/--chứng nhận

    (HTTPS) Yêu cầu Curl sử dụng tệp chứng chỉ được chỉ định khi nhận tệp có HTTPS. Chứng chỉ phải ở định dạng PEM. Nếu mật khẩu tùy chọn không được chỉ định, nó sẽ được truy vấn trên thiết bị đầu cuối. Lưu ý rằng chứng chỉ này là khóa riêng và chứng chỉ riêng được nối! Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --cert-loại

    (SSL) Cho biết loại chứng chỉ mà chứng chỉ được cung cấp thuộc loại nào. PEM, DER và ENG là các loại được công nhận. Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --cacert

    (HTTPS) Yêu cầu Curl sử dụng tệp chứng chỉ được chỉ định để xác minh ngang hàng. Tệp có thể chứa nhiều chứng chỉ CA. (Các) chứng chỉ phải ở định dạng PEM.

    Phiên bản Windows của Curl sẽ tự động tìm kiếm tệp CA certs có tên "curl-ca-bundle.crt", trong cùng thư mục với Curl.exe hoặc trong Thư mục làm việc hiện tại hoặc trong bất kỳ thư mục nào dọc theo PATH của bạn.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --capath (HTTPS) Yêu cầu Curl sử dụng thư mục chứng chỉ được chỉ định để xác minh ngang hàng. Chứng chỉ phải ở định dạng PEM và thư mục phải được xử lý bằng tiện ích c_rehash được cung cấp cùng với openssl. sử dụng --capath có thể cho phép Curl tạo kết nối https hiệu quả hơn nhiều so với việc sử dụng --cacert nếu --cacert tệp chứa nhiều chứng chỉ CA.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -f/--fail (HTTP) Lỗi âm thầm (không có kết quả nào cả) do lỗi máy chủ. Điều này chủ yếu được thực hiện như thế này để kích hoạt tốt hơn các tập lệnh, v.v. để xử lý tốt hơn các lần thử thất bại. Trong các trường hợp thông thường khi máy chủ HTTP không gửi được tài liệu, nó sẽ trả về một tài liệu HTML nêu rõ điều đó (thường cũng mô tả lý do và hơn thế nữa). Cờ này sẽ ngăn không cho Curl xuất ra lỗi đó và trả về lỗi 22.

    Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ vô hiệu hóa lỗi im lặng. --ftp-account (FTP) Khi máy chủ FTP yêu cầu "dữ liệu tài khoản" sau khi tên người dùng và mật khẩu đã được cung cấp, dữ liệu này sẽ được gửi đi bằng lệnh ACCT. (Đã thêm vào 7.13.0)

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ ghi đè lần sử dụng trước đó. --ftp-create-dirs (FTP) Khi một URL/thao tác FTP sử dụng đường dẫn hiện không tồn tại trên máy chủ, hành vi tiêu chuẩn của Curl sẽ không thành công. Khi sử dụng tùy chọn này, thay vào đó, Curl sẽ cố gắng tạo các thư mục bị thiếu. .

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc tạo thư mục. --ftp-method (FTP) Kiểm soát phương thức nào nên sử dụng để truy cập tệp trên máy chủ FTP(S). Đối số phương thức phải là một trong các lựa chọn thay thế sau: multicwdcurl thực hiện một thao tác CWD duy nhất cho từng phần đường dẫn trong URL đã cho. Đối với hệ thống phân cấp sâu, điều này có nghĩa là rất nhiều lệnh. Đây là cách RFC1738 nói rằng nó nên được thực hiện. Đây là hành vi mặc định nhưng chậm nhất. nocwdcurl hoàn toàn không có CWD. Curl sẽ thực hiện SIZE, RETR, STOR, v.v. và cung cấp đường dẫn đầy đủ đến máy chủ cho tất cả các lệnh này. Đây là hành vi nhanh nhất. singlecwd Curl thực hiện một CWD với thư mục đích đầy đủ và sau đó hoạt động trên tệp "bình thường" (như trong trường hợp multicwd). Điều này có phần tuân thủ các tiêu chuẩn hơn so với "nocwd" nhưng không có hình phạt hoàn toàn như "multicwd". --ftp-pasv (FTP) Sử dụng PASV khi truyền. PASV là hành vi mặc định nội bộ, nhưng việc sử dụng tùy chọn này có thể được sử dụng để ghi đè tùy chọn --ftp-port trước đó. (Đã thêm vào 7.11.0)

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt.

    Ftp-thay thế cho người dùng (FTP) Nếu việc xác thực bằng lệnh USER và PASS không thành công, hãy gửi lệnh này. Khi kết nối với máy chủ Truyền tải an toàn của Tumbleweed qua FTPS bằng chứng chỉ ứng dụng khách, việc sử dụng "SITE AUTH" sẽ yêu cầu máy chủ truy xuất tên người dùng từ chứng chỉ (Đã thêm trong 7.15.5) --ftp-skip-pasv-ip ( FTP) Yêu cầu Curl không sử dụng địa chỉ IP mà máy chủ gợi ý trong phản hồi của nó đối với lệnh PASV của Curl khi Curl kết nối kết nối dữ liệu. Thay vào đó, Curl sẽ sử dụng lại cùng một địa chỉ IP mà nó đã sử dụng cho kết nối điều khiển. (Đã thêm vào 7.14.2)

    Tùy chọn này không có hiệu lực nếu PORT, EPRT hoặc EPSV được sử dụng thay vì PASV.

    Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ lại sử dụng địa chỉ được đề xuất của máy chủ. --ftp-ssl (FTP) Hãy thử sử dụng SSL/TLS cho kết nối FTP. Hoàn nguyên về kết nối không an toàn nếu máy chủ không" t hỗ trợ SSL/TLS. (Đã thêm vào 7.11.0)

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. --ftp-ssl-reqd (FTP) Yêu cầu SSL/TLS cho kết nối FTP. Chấm dứt kết nối nếu máy chủ không hỗ trợ SSL/TLS (Đã thêm trong 7.15.5)

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. -F/-dạng (HTTP) Điều này cho phép cuộn tròn mô phỏng một biểu mẫu đã điền mà người dùng đã nhấn nút gửi. Điều này khiến dữ liệu bị cuộn tròn thành POST bằng cách sử dụng dữ liệu nhiều phần/biểu mẫu kiểu nội dung theo RFC1867. Điều này cho phép tải lên các tập tin nhị phân, v.v. Để buộc phần "nội dung" phải là một tệp, hãy thêm dấu @ vào trước tên tệp. Để chỉ lấy phần nội dung từ một tệp, hãy thêm chữ cái vào trước tên tệp<. The difference between @ and < is then that @ makes a file get attached in the post as a file upload, while the < makes a text field and just get the contents for that text field from a file.

    Ví dụ: để gửi tệp mật khẩu của bạn đến máy chủ, trong đó "password" là tên của trường biểu mẫu mà /etc/passwd sẽ là đầu vào:

    Để đọc nội dung của tệp từ stdin thay vì tệp, hãy sử dụng - nơi lẽ ra tên tệp phải có. Điều này áp dụng cho cả @ và< constructs.

    Bạn cũng có thể cho biết nên sử dụng Loại nội dung nào bằng cách sử dụng "type=", theo cách tương tự như:

    Xoăn-F" [email được bảo vệ];type=text/html" url.com

    Xoăn-F "name=daniel;type=text/foo" url.com

    Bạn cũng có thể thay đổi rõ ràng trường tên của phần tải lên tệp bằng cách đặt tên tệp=, như sau:

    Xoăn-F "file=@localfile;filename=nameinpost" url.com

    Xem thêm các ví dụ và chi tiết trong HƯỚNG DẪN SỬ DỤNG.

    Tùy chọn này có thể được sử dụng nhiều lần. --chuỗi biểu mẫu (HTTP) Tương tự như --hình thức ngoại trừ chuỗi giá trị cho tham số được đặt tên được sử dụng theo nghĩa đen. Dẫn đầu "@" và "<" characters, and the ";type=" string in the value have no special meaning. Use this in preference to --hình thức nếu có bất kỳ khả năng nào mà giá trị chuỗi có thể vô tình kích hoạt "@" hoặc "<" features of --hình thức. -g/--globoff Tùy chọn này tắt "Trình phân tích cú pháp toàn cầu URL". Khi bạn đặt tùy chọn này, bạn có thể chỉ định các URL chứa các chữ cái () mà không cần chúng phải được giải thích bằng chính cuộn tròn. Lưu ý rằng những chữ cái này không phải là nội dung URL hợp pháp thông thường mà chúng phải được mã hóa theo tiêu chuẩn URI. -G/--get Khi được sử dụng, tùy chọn này sẽ làm cho tất cả dữ liệu được chỉ định bằng -d/--dữ liệu hoặc --data-nhị phânđược sử dụng trong yêu cầu HTTP GET thay vì yêu cầu POST thường được sử dụng. Dữ liệu sẽ được thêm vào URL bằng dấu "?" dải phân cách

    Nếu được sử dụng kết hợp với -I, thay vào đó, dữ liệu POST sẽ được thêm vào URL với yêu cầu HEAD.

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -h/--help Trợ giúp sử dụng. -H/--tiêu đề

    (HTTP) Tiêu đề bổ sung để sử dụng khi tải trang web. Bạn có thể chỉ định số lượng tiêu đề bổ sung bất kỳ. Lưu ý rằng nếu bạn nên thêm tiêu đề tùy chỉnh có cùng tên với một trong những tiêu đề nội bộ mà Curl sẽ sử dụng, thì tiêu đề được đặt bên ngoài của bạn sẽ được sử dụng thay vì tiêu đề bên trong. Điều này cho phép bạn tạo ra những thứ thậm chí còn phức tạp hơn việc cuộn tròn thông thường. Bạn không nên thay thế các tiêu đề được đặt nội bộ mà không biết rõ mình đang làm gì. Việc thay thế tiêu đề nội bộ bằng tiêu đề không có nội dung ở bên phải dấu hai chấm sẽ ngăn tiêu đề đó xuất hiện.

    Curl sẽ đảm bảo rằng mỗi tiêu đề bạn thêm/thay thế sẽ được gửi bằng điểm đánh dấu cuối dòng thích hợp, do đó bạn nên không thêm điều đó như một phần của nội dung tiêu đề: không thêm dòng mới hoặc trả về đầu dòng, chúng sẽ chỉ làm mọi thứ rối tung lên cho bạn.

    Xem thêm -A/--tác nhân người dùng-e/--người giới thiệu tùy chọn.

    Tùy chọn này có thể được sử dụng nhiều lần để thêm/thay thế/xóa nhiều tiêu đề. --ignore-content-length (HTTP) Bỏ qua tiêu đề Độ dài nội dung. Điều này đặc biệt hữu ích cho các máy chủ chạy Apache 1.x, máy chủ này sẽ báo cáo Độ dài nội dung không chính xác đối với các tệp lớn hơn 2 gigabyte. -i/--include (HTTP) Bao gồm tiêu đề HTTP ở đầu ra. Tiêu đề HTTP bao gồm những thứ như tên máy chủ, ngày của tài liệu, phiên bản HTTP và hơn thế nữa...

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt tính năng bao gồm tiêu đề. --giao diện Thực hiện một thao tác bằng cách sử dụng một giao diện được chỉ định. Bạn có thể nhập tên giao diện, địa chỉ IP hoặc tên máy chủ. Một ví dụ có thể trông giống như:

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -I/--head (HTTP/FTP/FILE) Chỉ tìm nạp tiêu đề HTTP! Máy chủ HTTP có lệnh HEAD mà lệnh này sử dụng để không nhận được gì ngoài tiêu đề của tài liệu. Khi được sử dụng trên tệp FTP hoặc FILE, Curl chỉ hiển thị kích thước tệp và thời gian sửa đổi lần cuối.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ tắt tiêu đề. -j/--junk-session-cookies (HTTP) Khi Curl được yêu cầu đọc cookie từ một tệp nhất định, tùy chọn này sẽ khiến nó loại bỏ tất cả "cookie phiên". Về cơ bản, điều này sẽ có tác dụng tương tự như khi một phiên mới được bắt đầu. Các trình duyệt thông thường luôn loại bỏ cookie phiên khi chúng bị đóng.

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -k/--không an toàn (SSL) Tùy chọn này rõ ràng cho phép cuộn tròn thực hiện các kết nối và chuyển giao SSL "không an toàn". Tất cả các kết nối SSL đều được cố gắng đảm bảo an toàn bằng cách sử dụng gói chứng chỉ CA được cài đặt theo mặc định. Điều này làm cho tất cả các kết nối được coi là "không an toàn" không thành công trừ khi -k/--không an toànĐược sử dụng.

    Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ vô hiệu hóa nó. --chìa khóa (SSL) Tên tệp khóa riêng. Cho phép bạn cung cấp khóa riêng của mình trong tệp riêng biệt này.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --loại chính (SSL) Loại tệp khóa riêng. Chỉ định loại của bạn --chìa khóa cung cấp khóa riêng là. DER, PEM và ENG được hỗ trợ.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --krb4 (FTP) Kích hoạt và sử dụng xác thực kerberos4. Cấp độ phải được nhập và phải là cấp độ "rõ ràng", "an toàn", "bí mật" hoặc "riêng tư". Nếu bạn sử dụng cấp độ không phải là một trong những cấp độ này, thay vào đó, "riêng tư" sẽ được sử dụng.

    Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ của kerberos4. Điều này không phổ biến lắm. Sử dụng -V/--phiên bảnđể xem liệu lọn tóc của bạn có hỗ trợ nó hay không.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -K/--config Chỉ định tệp cấu hình nào để đọc các đối số cuộn tròn từ đó. Tệp cấu hình là một tệp văn bản trong đó các đối số dòng lệnh có thể được viết, sau đó sẽ được sử dụng như thể chúng được viết trên dòng lệnh thực tế. Các tùy chọn và tham số của chúng phải được chỉ định trên cùng một dòng tệp cấu hình. Nếu tham số chứa khoảng trắng thì tham số phải được đặt trong dấu ngoặc kép. Nếu cột đầu tiên của dòng cấu hình là ký tự "#", phần còn lại của dòng sẽ được coi là nhận xét.

    Chỉ định tên tệp là "-" để làm cho Curl đọc tệp từ stdin.

    Lưu ý rằng để có thể chỉ định một URL trong tệp cấu hình, bạn cần chỉ định nó bằng cách sử dụng --url tùy chọn chứ không phải chỉ bằng cách viết URL trên dòng riêng của nó. Vì vậy, nó có thể trông giống như thế này:

    Tùy chọn này có thể được sử dụng nhiều lần.

    Khi Curl được gọi, nó luôn luôn (trừ khi -qđược sử dụng) kiểm tra tệp cấu hình mặc định và sử dụng nó nếu tìm thấy. Tệp cấu hình mặc định được kiểm tra ở những vị trí sau theo thứ tự sau:

    1) Curl cố gắng tìm "thư mục chính": Đầu tiên nó kiểm tra CURL_HOME và sau đó là các biến môi trường HOME. Nếu không, nó sử dụng getpwuid() trên các hệ thống giống unix (trả về thư mục chính cho người dùng hiện tại trong hệ thống của bạn). Trên Windows, sau đó nó sẽ kiểm tra biến APPDATA hoặc phương án cuối cùng là "%USERPROFILE%Application Data".

    2) Trên windows, nếu không có tệp _curlrc trong thư mục chính, nó sẽ kiểm tra một tệp trong cùng thư mục mà tệp thực thi được đặt. Trên các hệ thống giống unix, nó sẽ chỉ cố tải .curlrc từ thư mục gốc đã xác định. --tỷ lệ giới hạn Chỉ định tốc độ truyền tối đa mà bạn muốn sử dụng. Tính năng này hữu ích nếu đường truyền của bạn bị giới hạn và bạn muốn quá trình truyền không sử dụng toàn bộ băng thông.

    Tốc độ nhất định được đo bằng byte/giây, trừ khi hậu tố được thêm vào. Việc thêm "k" hoặc "K" sẽ tính số là kilobyte, "m" hoặc M" sẽ tính là megabyte trong khi "g" hoặc "G" sẽ tính là gigabyte. Ví dụ: 200K, 3m và 1G.

    Nếu bạn cũng đang sử dụng -Y/--giới hạn tốc độ tùy chọn, tùy chọn đó sẽ được ưu tiên và có thể làm tê liệt giới hạn tốc độ một chút, để giúp duy trì logic giới hạn tốc độ hoạt động.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -l/--list-only (FTP) Khi liệt kê một thư mục FTP, khóa chuyển này buộc chỉ xem tên. Đặc biệt hữu ích nếu bạn muốn phân tích cú pháp nội dung của thư mục FTP bằng máy vì chế độ xem thư mục thông thường không sử dụng giao diện hoặc định dạng chuẩn.

    Tùy chọn này khiến lệnh FTP NLST được gửi. Một số máy chủ FTP chỉ liệt kê các tệp trong phản hồi của chúng đối với NLST; chúng không bao gồm các thư mục con và các liên kết tượng trưng.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ vô hiệu hóa danh sách. --local-port [-num] Đặt số hoặc phạm vi số cổng cục bộ ưa thích để sử dụng cho (các) kết nối. Lưu ý rằng số cổng về bản chất là nguồn tài nguyên khan hiếm và đôi khi sẽ bận rộn nên việc đặt phạm vi này thành quá hẹp có thể gây ra lỗi thiết lập kết nối không cần thiết. (Đã thêm trong 7.15.2) -L/--location (HTTP/HTTPS) Nếu máy chủ báo cáo rằng trang được yêu cầu đã di chuyển đến một vị trí khác (được biểu thị bằng tiêu đề Vị trí: và mã phản hồi 3XX), tùy chọn này sẽ làm cong làm lại yêu cầu ở địa điểm mới. Nếu sử dụng cùng với -i/--bao gồm hoặc -Tôi/--đầu, tiêu đề từ tất cả các trang được yêu cầu sẽ được hiển thị. Khi xác thực được sử dụng, Curl chỉ gửi thông tin xác thực của nó đến máy chủ ban đầu. Nếu một chuyển hướng chuyển hướng sang một máy chủ khác, nó sẽ không thể chặn người dùng+mật khẩu. Xem thêm --địa điểm đáng tin cậy về cách thay đổi điều này. Bạn có thể giới hạn số lượng chuyển hướng cần theo dõi bằng cách sử dụng --max-redirs lựa chọn.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt vị trí sau. --địa điểm đáng tin cậy (HTTP/HTTPS) Thích -L/--vị trí, nhưng sẽ cho phép gửi tên + mật khẩu tới tất cả các máy chủ mà trang web có thể chuyển hướng đến. Điều này có thể gây ra hoặc không gây ra vi phạm bảo mật nếu trang web chuyển hướng bạn đến một trang web mà bạn sẽ gửi thông tin xác thực của mình (là văn bản thuần túy trong trường hợp xác thực HTTP Basic).

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt vị trí sau. --Kích thước tệp tối đa Chỉ định kích thước tối đa (tính bằng byte) của tệp để tải xuống. Nếu tệp được yêu cầu lớn hơn giá trị này, quá trình truyền sẽ không bắt đầu và cuộn tròn sẽ quay lại với mã thoát 63.

    LƯU Ý: Kích thước tệp không phải lúc nào cũng được biết trước khi tải xuống và đối với các tệp như vậy, tùy chọn này không có hiệu lực ngay cả khi quá trình truyền tệp lớn hơn giới hạn đã cho này. Điều này liên quan đến cả chuyển giao FTP và HTTP. -m/--thời gian tối đa Thời gian tối đa tính bằng giây mà bạn cho phép thực hiện toàn bộ thao tác. Điều này rất hữu ích để ngăn chặn các công việc hàng loạt của bạn bị treo hàng giờ do mạng hoặc liên kết chậm. Xem thêm --kết nối-hết thời gian lựa chọn.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -M/--hướng dẫn sử dụng. Hiển thị văn bản trợ giúp lớn. -n/--netrc Làm cho việc quét cuộn tròn .netrc trong thư mục chính của người dùng để lấy tên đăng nhập và mật khẩu. Tệp này thường được sử dụng cho ftp trên Unix. Nếu được sử dụng với http, Curl sẽ kích hoạt xác thực người dùng. (4) hoặc (1) để biết chi tiết về định dạng tập tin. Curl sẽ không phàn nàn nếu tệp đó không có quyền phù hợp (nó không thể đọc được trên thế giới cũng như nhóm). Biến môi trường "HOME" được sử dụng để tìm thư mục chính.

    Một ví dụ nhanh chóng và rất đơn giản về cách thiết lập một .netrcđể cho phép cuộn ftp vào máy Host.domain.com với tên người dùng "myself" và mật khẩu "secret" sẽ trông giống như:

    máy chủ.domain.com tự đăng nhập mật khẩu bí mật

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc sử dụng netrc. --netrc-tùy chọn Rất giống với --netrc, nhưng tùy chọn này làm cho việc sử dụng .netrc không bắt buộc và không bắt buộc như --netrc làm.

    --negotiate (HTTP) Cho phép xác thực GSS-Negotiate. Phương pháp GSS-Negoiate được Microsoft thiết kế và được sử dụng trong các ứng dụng web của họ. Nó chủ yếu nhằm mục đích hỗ trợ xác thực Kerberos5 nhưng cũng có thể được sử dụng cùng với các phương thức xác thực khác. Để biết thêm thông tin, hãy xem bản nháp IETF-brezak-spnego-http-04.txt. -V/--phiên bản Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ GSSAPI. Điều này không phổ biến lắm. Sử dụng

    để xem phiên bản của bạn có hỗ trợ GSS-Negoiate hay không.

    Khi sử dụng tùy chọn này, bạn cũng phải cung cấp tùy chọn -u/--user giả để kích hoạt mã xác thực đúng cách. Gửi "-u:" là đủ vì tên người dùng và mật khẩu từ tùy chọn -u không thực sự được sử dụng.

    Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -N/--no-buffer Tắt tính năng đệm của luồng đầu ra. Trong các tình huống làm việc bình thường, Curl sẽ sử dụng luồng đầu ra được đệm tiêu chuẩn sẽ có tác dụng là nó sẽ xuất dữ liệu theo từng khối, không nhất thiết phải chính xác khi dữ liệu đến. Sử dụng tùy chọn này sẽ vô hiệu hóa việc đệm đó.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại bật tính năng đệm. --ntlm (HTTP) Bật xác thực NTLM. Phương thức xác thực NTLM được Microsoft thiết kế và được các máy chủ web IIS sử dụng. Đó là một giao thức độc quyền, được thiết kế đảo ngược bởi những người thông minh và được triển khai theo hướng hoàn thiện dựa trên nỗ lực của họ. Loại hành vi này không nên được tán thành, thay vào đó, bạn nên khuyến khích tất cả những người sử dụng NTLM chuyển sang phương thức xác thực công khai và được ghi lại. Chẳng hạn như Thông báo. Nếu bạn muốn bật NTLM để xác thực proxy của mình, hãy sử dụng.

    --proxy-ntlm -V/--phiên bản Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ SSL. Sử dụng

    để xem liệu lọn tóc của bạn có hỗ trợ NTLM hay không. Nếu tùy chọn này được sử dụng nhiều lần, những lần xuất hiện sau đây sẽ không có gì khác biệt. -o/--đầu ra Viết đầu ra vào thay vì thiết bị xuất chuẩn. Nếu bạn đang sử dụng () hoặc để tìm nạp nhiều tài liệu, bạn có thể sử dụng "#" theo sau là một số trong

    người chỉ định. Biến đó sẽ được thay thế bằng chuỗi hiện tại cho URL đang được tìm nạp. Giống như trong:

    Xem thêm Bạn có thể sử dụng tùy chọn này nhiều lần tùy theo số lượng URL mà bạn có.--tạo-thư mục

    tùy chọn để tạo các thư mục cục bộ một cách linh hoạt. -O/--remote-name Ghi đầu ra vào một tệp cục bộ có tên giống như tệp từ xa mà chúng tôi nhận được. (Chỉ sử dụng phần tệp của tệp từ xa, đường dẫn bị cắt.)

    Bạn có thể sử dụng tùy chọn này nhiều lần tùy theo số lượng URL mà bạn có. --vượt qua (SSL) Truyền cụm từ cho khóa riêng

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --proxy-anyauth Yêu cầu cuộn tròn chọn phương thức xác thực phù hợp khi liên lạc với proxy đã cho. Điều này sẽ gây ra thêm một chuyến đi khứ hồi yêu cầu/phản hồi. (Đã thêm vào 7.13.2)

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa xác thực sử dụng proxy-bất kỳ. --proxy-basic Yêu cầu Curl sử dụng xác thực HTTP Basic khi giao tiếp với proxy đã cho. Sử dụng --nền tảngđể bật HTTP Basic với máy chủ từ xa. Cơ bản là phương thức xác thực mặc định được sử dụng với proxy.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa xác thực HTTP Basic của proxy. --proxy-digest Yêu cầu cuộn tròn sử dụng xác thực HTTP Digest khi giao tiếp với proxy đã cho. Sử dụng --tiêuđể bật HTTP Digest với máy chủ từ xa.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt proxy HTTP Digest. --proxy-ntlm Yêu cầu Curl sử dụng xác thực HTTP NTLM khi liên lạc với proxy đã cho. Sử dụng --ntlmđể kích hoạt NTLM với máy chủ từ xa.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt proxy HTTP NTLM. -p/--proxytunnel Khi sử dụng proxy HTTP ( -x/--proxy), tùy chọn này sẽ khiến các giao thức không phải HTTP cố gắng chuyển qua proxy thay vì chỉ sử dụng nó để thực hiện các hoạt động giống như HTTP. Cách tiếp cận đường hầm được thực hiện với yêu cầu CONNECT proxy HTTP và yêu cầu proxy cho phép kết nối trực tiếp với số cổng từ xa mà Curl muốn chuyển qua đường hầm.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt đường hầm proxy. -P/--ftp-port

    (FTP) Đảo ngược vai trò người khởi tạo/người nghe khi kết nối với ftp. Công tắc này làm cho Curl sử dụng lệnh PORT thay vì PASV. Trong thực tế, PORT yêu cầu máy chủ kết nối với địa chỉ và cổng được chỉ định của máy khách, trong khi PASV yêu cầu máy chủ cung cấp địa chỉ IP và cổng để kết nối.
    phải là một trong: giao diện tức là "eth0" để chỉ định địa chỉ IP của giao diện nào bạn muốn sử dụng (chỉ Unix) địa chỉ IP tức là "192.168.10.1" để chỉ định số IP chính xác tên máy chủ, tức là "my.host.domain" cho chỉ định máy - làm cho cuộn tròn chọn cùng một địa chỉ IP đã được sử dụng cho kết nối điều khiển

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. Vô hiệu hóa việc sử dụng PORT với --ftp-pasv. Vô hiệu hóa nỗ lực sử dụng lệnh EPRT thay vì PORT bằng cách sử dụng --disable-eprt. EPRT thực sự là PORT++. -q Nếu được sử dụng làm tham số đầu tiên trên dòng lệnh, cuộn tròn tập tin cấu hình sẽ không được đọc và sử dụng. Xem -K/--configđể biết chi tiết về đường dẫn tìm kiếm tệp cấu hình mặc định. -Q/--trích dẫn (FTP) Gửi lệnh tùy ý đến máy chủ FTP từ xa. Các lệnh báo giá được gửi TRƯỚC KHI quá trình chuyển tiền diễn ra (chính xác là ngay sau lệnh PWD ban đầu). Để thực hiện các lệnh sau khi truyền thành công, hãy thêm dấu gạch ngang "-" vào trước chúng. Để thực hiện các lệnh được gửi sau khi libcurl đã thay đổi thư mục làm việc, ngay trước (các) lệnh truyền, hãy thêm "+" vào tiền tố lệnh. Bạn có thể chỉ định bất kỳ số lượng lệnh nào. Nếu máy chủ trả về lỗi đối với một trong các lệnh, toàn bộ thao tác sẽ bị hủy bỏ. Bạn phải gửi các lệnh FTP đúng cú pháp như RFC959 xác định.

    Tùy chọn này có thể được sử dụng nhiều lần. --tập tin ngẫu nhiên (HTTPS) Chỉ định tên đường dẫn đến tệp chứa nội dung sẽ được coi là dữ liệu ngẫu nhiên. Dữ liệu được sử dụng để tạo công cụ ngẫu nhiên cho các kết nối SSL. Xem thêm --egd-file lựa chọn. -r/--phạm vi 0-499 (HTTP/FTP) Truy xuất một phạm vi byte (tức là một phần tài liệu) từ máy chủ HTTP/1.1 hoặc FTP. Phạm vi có thể được chỉ định theo một số cách. 500-999 chỉ định 500 byte đầu tiên -500 chỉ định 500 byte thứ hai 9500- chỉ định 500 byte cuối cùng 0-0,-1 chỉ định các byte từ offset 9500 trở đi 500-700,600-799 chỉ định byte đầu tiên và byte cuối cùng(*)(H) 100-199,500-599 chỉ định 300 byte từ offset 500(H)

    chỉ định hai phạm vi 100 byte riêng biệt(*)(H)

    (*) = LƯU Ý rằng điều này sẽ khiến máy chủ phản hồi bằng phản hồi nhiều phần!

    Bạn cũng nên lưu ý rằng nhiều máy chủ HTTP/1.1 không bật tính năng này, do đó khi bạn cố gắng lấy một phạm vi, thay vào đó bạn sẽ nhận được toàn bộ tài liệu.

    Tải xuống phạm vi FTP chỉ hỗ trợ cú pháp đơn giản "start-stop" (tùy chọn bỏ qua một trong các số). Nó phụ thuộc vào lệnh SIZE không phải RFC.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. -R/--remote-time Khi được sử dụng, điều này sẽ khiến libcurl cố gắng tìm ra dấu thời gian của tệp từ xa và nếu có, hãy làm cho tệp cục bộ có cùng dấu thời gian đó. Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ tắt tùy chọn này một lần nữa. --thử lại

    Khi Curl chuẩn bị thử lại một lần chuyển, trước tiên, nó sẽ đợi một giây và sau đó đối với tất cả các lần thử lại sắp tới, nó sẽ tăng gấp đôi thời gian chờ cho đến khi đạt đến 10 phút, sau đó sẽ là độ trễ giữa các lần thử lại còn lại. Bằng cách sử dụng --thử lại-trì hoãn bạn vô hiệu hóa thuật toán rút lui theo cấp số nhân này. Xem thêm --thử lại-thời gian tối đađể giới hạn tổng thời gian cho phép để thử lại. (Đã thêm vào 7.12.3)

    Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --thử lại-trì hoãn Đặt chế độ ngủ cuộn tròn trong khoảng thời gian này giữa mỗi lần thử lại khi quá trình truyền không thành công kèm theo lỗi tạm thời (nó thay đổi thuật toán thời gian chờ mặc định giữa các lần thử lại). Tùy chọn này chỉ thú vị nếu --thử lại cũng được sử dụng. Đặt độ trễ này về 0 sẽ khiến cho việc sử dụng thời gian chờ mặc định trở nên khó khăn hơn. (Đã thêm vào 7.12.3)

    Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --thử lại-thời gian tối đa Bộ đếm thời gian thử lại được đặt lại trước lần thử chuyển đầu tiên. Việc thử lại sẽ được thực hiện như bình thường (xem --thử lại) miễn là bộ hẹn giờ chưa đạt đến giới hạn đã cho này. Lưu ý rằng nếu bộ hẹn giờ chưa đạt đến giới hạn thì yêu cầu sẽ được thực hiện và trong khi thực hiện, có thể mất nhiều thời gian hơn khoảng thời gian đã cho này. Để giới hạn thời gian tối đa của một yêu cầu, hãy sử dụng -m/--thời gian tối đa. Đặt tùy chọn này thành 0 để không hết thời gian thử lại. (Đã thêm vào 7.12.3)

    Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. -s/--im lặng Chế độ im lặng. Không hiển thị đồng hồ đo tiến độ hoặc thông báo lỗi. Làm cho Curl bị tắt tiếng.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt chế độ im lặng. -S/--show-error Khi được sử dụng với -s, nó sẽ khiến thông báo lỗi hiển thị khi bị lỗi.

    Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại tắt hiển thị lỗi. --socks4 Sử dụng proxy SOCKS4 được chỉ định. Nếu số cổng không được chỉ định thì nó được giả định là cổng 1080. (Đã thêm trong 7.15.2)

    -x/--proxy

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --vớ5 Sử dụng proxy SOCKS5 được chỉ định. Nếu số cổng không được chỉ định thì nó được giả định là cổng 1080. (Đã thêm trong 7.11.1)

    Tùy chọn này ghi đè mọi việc sử dụng trước đó của -x/--proxy, vì chúng loại trừ lẫn nhau.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. (Tùy chọn này trước đây đã được ghi lại sai và được sử dụng dưới dạng --socks mà không có số được thêm vào.) --stderr Thay vào đó, hãy chuyển hướng tất cả việc ghi vào stderr vào tệp được chỉ định. Nếu tên tệp là "-", thay vào đó nó sẽ được ghi vào thiết bị xuất chuẩn. Tùy chọn này không có ý nghĩa gì khi bạn đang sử dụng một trình bao có khả năng chuyển hướng tốt.

    Nếu tùy chọn này được sử dụng nhiều lần thì tùy chọn cuối cùng sẽ được sử dụng. --tcp-nodelay Bật tùy chọn TCP_NODELAY. Xem (3) trang man để biết chi tiết về tùy chọn này. (Đã thêm vào 7.11.2)

    Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật/tắt tùy chọn này. -t/--tùy chọn telnet Chuyển các tùy chọn tới giao thức telnet. Các tùy chọn được hỗ trợ là:

    TTYPE= Đặt loại thiết bị đầu cuối.

    XDISPLOC= Đặt vị trí hiển thị X.

    MỚI_ENV= Đặt một biến môi trường. -T/--tải lên tập tin Thao tác này sẽ chuyển tệp cục bộ được chỉ định sang URL từ xa. Nếu không có phần tệp nào trong URL được chỉ định, Curl sẽ thêm tên tệp cục bộ. LƯU Ý rằng bạn phải sử dụng dấu / trên thư mục cuối cùng để thực sự chứng minh cho Curl rằng không có tên tệp hoặc Curl sẽ nghĩ rằng tên thư mục cuối cùng của bạn là tên tệp từ xa sẽ sử dụng. Điều đó rất có thể sẽ khiến thao tác tải lên không thành công. Nếu điều này được sử dụng trên máy chủ http(s), lệnh PUT sẽ được sử dụng.

    Sử dụng tên tệp "-" (một dấu gạch ngang) để sử dụng stdin thay vì một tệp nhất định.

    Bạn có thể chỉ định một -T cho mỗi URL trên dòng lệnh. Mỗi cặp -T + URL chỉ định nội dung cần tải lên và tải lên ở đâu. Curl cũng hỗ trợ "toàn cầu hóa" đối số -T, nghĩa là bạn có thể tải nhiều tệp lên một URL bằng cách sử dụng cùng một kiểu toàn cầu hóa URL được hỗ trợ trong URL, như sau:

    CÁC TẬP TIN

    ~/.curlrc Tệp cấu hình mặc định, xem -K/--configđể biết chi tiết.

    MÔI TRƯỜNG

    http Proxy [:port] Đặt máy chủ proxy để sử dụng cho HTTP. HTTPS_PROXY [:port] Đặt máy chủ proxy để sử dụng cho HTTPS. FTP_PROXY [:port] Đặt máy chủ proxy để sử dụng cho FTP. ALL_PROXY [:port] Đặt máy chủ proxy để sử dụng nếu không có proxy dành riêng cho giao thức nào được đặt. KHÔNG CÓ PROXY danh sách tên máy chủ không được thông qua bất kỳ proxy nào. Nếu chỉ đặt thành dấu hoa thị "*", nó sẽ khớp với tất cả các máy chủ.

    MÃ THOÁT

    Tồn tại một loạt mã lỗi khác nhau và thông báo lỗi tương ứng của chúng có thể xuất hiện trong điều kiện xấu. Tại thời điểm viết bài này, mã thoát là: 1 Giao thức không được hỗ trợ. Bản dựng Curl này không hỗ trợ giao thức này. 2 Không khởi tạo được. 3 URL không đúng định dạng. Cú pháp không đúng. 4 URL người dùng bị định dạng sai. Phần người dùng của cú pháp URL không chính xác. 5 Không thể phân giải proxy. Không thể phân giải máy chủ proxy đã cho. 6 Không thể phân giải máy chủ. Máy chủ từ xa đã cho chưa được giải quyết. 7 Không thể kết nối với máy chủ. 8 FTP trả lời máy chủ kỳ lạ. Máy chủ đã gửi dữ liệu không thể phân tích cú pháp. 9 Quyền truy cập FTP bị từ chối. Máy chủ đã từ chối đăng nhập hoặc từ chối quyền truy cập vào tài nguyên hoặc thư mục cụ thể mà bạn muốn truy cập. Thông thường, bạn đã cố gắng thay đổi sang một thư mục không tồn tại trên máy chủ. . 10 người dùng/mật khẩu FTP không chính xác. Một hoặc cả hai đều không được máy chủ chấp nhận. 11 FTP trả lời PASS kỳ lạ. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu PASS. 12 câu trả lời kỳ lạ của FTP NGƯỜI DÙNG. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu NGƯỜI DÙNG. 13 FTP trả lời PASV kỳ lạ, Curl không thể phân tích cú pháp trả lời được gửi tới yêu cầu PASV 14 FTP ở định dạng 227 kỳ lạ Curl không thể phân tích dòng 227 mà máy chủ đã gửi. 15 FTP không thể lấy máy chủ. Không thể giải quyết IP máy chủ mà chúng tôi có trong dòng 227. 16 FTP không thể kết nối lại. Không thể kết nối với máy chủ mà chúng tôi có ở đường dây 227. 17 FTP không thể đặt nhị phân Không thể thay đổi phương thức truyền sang nhị phân. 18 Tệp một phần. Chỉ một phần của tập tin được chuyển giao. 19 FTP không thể tải xuống/truy cập tệp đã cho, lệnh RETR (hoặc tương tự) không thành công. 20 Lỗi ghi FTP. Quá trình truyền bị lỗi do máy chủ báo cáo. 21 lỗi trích dẫn FTP. Trang HTTP không được truy xuất. Không tìm thấy url được yêu cầu hoặc trả về một lỗi khác với mã lỗi HTTP từ 400 trở lên. Mã trả về này chỉ xuất hiện nếu. -f/--thất bại Được sử dụng. Những cái hiện có có nghĩa là không bao giờ thay đổi.

    21 câu trả lời

    Có thể bạn đã có mái tóc xoăn rồi

    Bạn có thể không cần tải xuống bất cứ thứ gì:

    • Nếu bạn đang sử dụng Windows 10 phiên bản 1803 trở lên, hệ điều hành của bạn sẽ đi kèm với một bản sao cuộn tròn đã được định cấu hình và sẵn sàng để sử dụng.
    • Nếu bạn có nhiều nhu cầu bí truyền hơn (ví dụ: bạn cần bản dựng cygwin, bản dựng của bên thứ 3, libcurl, tệp tiêu đề, nguồn, v.v.), hãy sử dụng trình hướng dẫn tải xuống cuộn tròn. Sau khi trả lời năm câu hỏi, bạn sẽ nhận được danh sách các liên kết tải xuống.

      Loại bỏ và điều chỉnh độ cong

      Tìm Curl.exe trong gói đã tải xuống của bạn; có lẽ nó ở dưới bin\ .

      Chọn một vị trí trên ổ cứng sẽ đóng vai trò là ngôi nhà cố định cho các lọn tóc:

      • Nếu bạn muốn tạo một thư mục riêng cho nó, C:\Program Files\curl\ hoặc C:\curl\ sẽ làm được.
      • Nếu bạn có nhiều tệp thực thi miễn phí và không muốn thêm nhiều thư mục riêng biệt vào PATH của mình, hãy sử dụng một thư mục duy nhất cho mục đích này, chẳng hạn như C:\Program Files\tools\ hoặc C:\tools\ .

      Đặt Curl.exe vào thư mục. Và không bao giờ di chuyển thư mục hoặc nội dung của nó.

      Sau đó, bạn sẽ muốn cung cấp tính năng cuộn tròn ở bất kỳ đâu trên dòng lệnh. Để thực hiện việc này, hãy thêm thư mục vào PATH, như thế này:

      1. Nhấp vào menu Bắt đầu của Windows 10.
      2. Bạn sẽ thấy kết quả tìm kiếm. Chỉnh sửa biến môi trường hệ thống. Chọn cái này.
      3. Cửa sổ Thuộc tính hệ thống sẽ mở ra. Nhấn vào nút Biến môi trườngở phía dưới.
      4. Chọn biến "Đường dẫn" trong phần "Biến hệ thống" (trường dưới cùng). Nhấn vào nút Thay đổi.
      5. Nhấp chuột " Thêm vào" và dán đường dẫn đến thư mục chứa Curl.exe.
      6. Nhấp chuột ĐƯỢC RỒI, Nếu cần thiết. Đóng các cửa sổ bảng điều khiển đang mở và mở lại chúng để chúng nhận được PATH mới.

      Bây giờ hãy tận hưởng việc gõ Curl trên bất kỳ dòng lệnh nào. Thời gian để vui chơi!

      Để chạy Curl từ dòng lệnh

      a) Nhấp chuột phải vào biểu tượng My Computer

      b) Chọn "Thuộc tính"

      d) Chuyển đến tab [Nâng cao] - nút "Biến môi trường"

      e) Trong "Biến hệ thống", chọn "Đường dẫn" và "Chỉnh sửa"

      f) Thêm dấu chấm phẩy và sau đó là đường dẫn đến nơi bạn đặt tập tin Curl.exe (ví dụ: D:\software\curl)

    Bây giờ bạn có thể chạy từ dòng lệnh bằng cách gõ:

    Cuộn tròn www.google.com

    Bắt đầu với Windows 10 phiên bản 1803 (và cũ hơn, Insider build 17063), bạn không còn cài đặt Curl . Windows chứa Curl.exe (và tar.exe) của riêng nó trong C:\Windows\System32\ mà bạn có thể truy cập trực tiếp từ CMD thông thường.

    C:\Users\vonc>C:\Windows\System32\curl.exe --version Curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Ngày phát hành: Giao thức: tệp dict ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Tính năng: AsynchDNS IPv6 SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --version bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f- ipp

    Có lẽ cần lưu ý rằng Powershell v3 trở lên chứa lệnh ghép ngắn Invoke-WebRequest, có một số khả năng cuộn tròn. Có lẽ cũng đáng đề cập đến các lệnh ghép ngắn New-WebServiceProxy và Invoke-RestMethod.

    Tôi không chắc chúng có phù hợp với bạn hay không, nhưng mặc dù tôi không phải là Windows, nhưng tôi phải nói rằng tôi thấy cách tiếp cận đối tượng mà PS sử dụng dễ dàng hơn nhiều khi làm việc với các tiện ích như Curl, wget, v.v. Chúng có thể đáng xem

    Bạn có thể tạo phiên bản mới nhất của Curl, openssl, libssh2 và zlib trong 3 bước đơn giản bằng cách làm theo hướng dẫn này.

    Curl được xây dựng tĩnh, do đó bạn không cần phải truyền bá thời gian chạy động cần thiết.

    Bạn cũng có thể tải xuống phiên bản dựng sẵn (x86 và x64) từ

    Tôi đang tìm kiếm quá trình tải xuống Xoăn và mọi nơi họ nói hãy sao chép tập tin Curl.exe trên System32, nhưng họ không cung cấp liên kết trực tiếp. nên bạn có thể tận hưởng ở đây Curl.exe dễ dàng để thư mục thùng rác Chỉ

    giải nén nó và sau đó vào thư mục bin nơi bạn sẽ nhận được tệp exe

    Tôi nghĩ tôi sẽ viết chính xác những gì tôi đã làm (phiên bản Windows 10, 64-bit):

    Chọn tệp thực thi cuộn tròn.

    Chọn Win64.

    Chọn phổ quát.

    Chọn bất kỳ một.

    phiên bản cuộn tròn: 7.53.1 - Đã bật SSH đã bật SSL. Tín dụng: Victor Shakats. Gói này là một kiểu cuộn tròn có thể thực thi được. Liên kết này sẽ giúp bạn có được tệp nhị phân cuộn tròn được biên dịch trước (hoặc trong một số trường hợp, sử dụng thông tin được cung cấp trên trang mà liên kết sẽ đưa bạn đến). Bạn có thể hoặc không thể cài đặt libcurl làm thư viện/DLL dùng chung. Tệp được đóng gói bằng 7zip. 7zip là một định dạng lưu trữ tập tin.

    Nhấp vào tải xuống.

    Bạn nên có tệp Curl-7.53.1-win64-mingw.7z trong thư mục tải xuống của mình.

    Cài đặt 7-Zip nếu bạn chưa có.

    Nhấp chuột phải, 7-Zip, Giải nén tại đây. Sao chép và dán tệp được giải nén vào đâu đó như Z:\Tools\

    Nếu bạn nhìn vào thư mục bin, bạn sẽ thấy Curl.exe. Nếu bạn nhấp đúp vào nó, cửa sổ sẽ nhanh chóng nhấp nháy và biến mất. Để chạy nó, bạn cần sử dụng dòng lệnh. Chuyển đến thư mục bin của bạn và nhập cuộn tròn theo sau là các tùy chọn của bạn để thực hiện yêu cầu. Bạn phải sử dụng dấu ngoặc kép. Dấu ngoặc đơn sẽ không hoạt động với tính năng cuộn tròn trên Windows.

    Bây giờ bạn cần thêm Curl vào biến Đường dẫn người dùng để không phải điều hướng đến đúng thư mục để chạy chương trình. Đi tới PC này, Máy tính, Thuộc tính hệ thống, Cài đặt hệ thống nâng cao, đăng nhập với tư cách quản trị viên (bạn không phải là quản trị viên phải không?). Biến môi trường, Biến hệ thống, xem danh sách và chọn Đường dẫn, sau đó Chỉnh sửa, rồi Mới, sau đó, ví dụ:

    Z:\Tools\curl-7.53.1-win64-MinGW\Bin

    Bạn có thể thêm dấu gạch chéo ngược nếu muốn, tôi không nghĩ nó quan trọng. Nhấn nút di chuyển lên cho đến khi nó ở đầu danh sách và bạn có thể dễ dàng nhìn thấy nó từ màn hình trước. Bấm OK, OK, OK, sau đó mở dấu nhắc lệnh và bạn có thể chạy Curl bằng cách gõ Curl từ bất kỳ thư mục nào với tư cách bất kỳ người dùng nào. Đừng quên dấu ngoặc kép của bạn.

    Đây là câu trả lời tôi muốn nhận được.

    Trình cài đặt này giúp tôi dễ dàng http://www.confusedbycode.com/curl/

    Chúng tôi xin giới thiệu với bạn một khóa học mới của nhóm Codeby- "Thử nghiệm thâm nhập các ứng dụng Web từ đầu." Lý thuyết chung, chuẩn bị môi trường làm việc, làm mờ và lấy dấu vân tay thụ động, làm mờ chủ động, Lỗ hổng, Hậu khai thác, Công cụ, Kỹ thuật xã hội và nhiều hơn thế nữa.


    cURL dùng để làm gì?

    • cURL rất tốt để mô phỏng hành động của người dùng trong trình duyệt.

    Ví dụ thực tế thực tế: bạn cần khởi động lại bộ định tuyến (modem) để thay đổi địa chỉ IP. Để thực hiện việc này, bạn cần: đăng nhập vào bộ định tuyến, truy cập trang bảo trì và nhấp vào nút “Khởi động lại”. Nếu hành động này cần được thực hiện nhiều lần thì quy trình phải được lặp lại. Đồng ý rằng bạn không muốn thực hiện công việc này một cách thủ công mọi lúc. cURL cho phép bạn tự động hóa tất cả những điều này. Chỉ với một vài lệnh cURL, bạn có thể đạt được ủy quyền và hoàn thành tác vụ trên bộ định tuyến.

    • cURL rất hữu ích để lấy dữ liệu từ các trang web bằng dòng lệnh.

    Một ví dụ thực tế khác: chúng tôi muốn triển khai hiển thị số liệu thống kê chung cho một số trang web. Nếu chúng tôi sử dụng cURL, thì đây sẽ trở thành một nhiệm vụ hoàn toàn tầm thường: sử dụng cURL, chúng tôi xác thực trên dịch vụ thu thập số liệu thống kê (nếu được yêu cầu), sau đó (một lần nữa sử dụng lệnh cURL), chúng tôi có được các trang cần thiết, phân tích cú pháp dữ liệu chúng tôi cần; quy trình được lặp lại cho tất cả các trang web của chúng tôi, sau đó chúng tôi thêm và hiển thị kết quả cuối cùng.

    Những thứ kia. các trường hợp sử dụng cURL là khá thực tế, mặc dù phần lớn các lập trình viên sử dụng nó cho chương trình của họ đều cần cURL.

    cURL hỗ trợ nhiều giao thức và phương thức ủy quyền, có thể truyền tệp, hoạt động chính xác với cookie, hỗ trợ chứng chỉ SSL, proxy và hơn thế nữa.

    cURL trong PHP và dòng lệnh

    Chúng ta có thể sử dụng cURL theo hai cách chính: trong tập lệnh PHP và trên dòng lệnh.

    Để bật cURL trong PHP trên máy chủ, bạn cần bỏ ghi chú dòng trong tệp php.ini

    Tiện ích mở rộng=php_curl.dll

    Và sau đó khởi động lại máy chủ.

    Trên Linux bạn cần cài đặt gói Curl.

    Trên Debian, Ubuntu hoặc Linux Mint:

    $ sudo apt-get cài đặt cuộn tròn

    Trên Fedora, CentOS hoặc RHEL:

    $ sudo yum cài đặt cuộn tròn

    Để thấy rõ sự khác biệt trong cách sử dụng PHP và trên dòng lệnh, chúng ta sẽ thực hiện các tác vụ giống nhau hai lần: đầu tiên là trong tập lệnh PHP và sau đó là trên dòng lệnh. Hãy cố gắng đừng nhầm lẫn.

    Lấy dữ liệu bằng cURL

    Lấy dữ liệu bằng cURL trong PHP

    Ví dụ trong PHP:

    Mọi thứ đều rất đơn giản:

    $target_url— địa chỉ của trang web mà chúng tôi quan tâm. Sau địa chỉ trang web, bạn có thể đặt dấu hai chấm và thêm địa chỉ cổng (nếu cổng khác với cổng tiêu chuẩn).

    cuộn_init— khởi tạo một phiên mới và trả về một bộ mô tả, trong ví dụ của chúng ta được gán cho một biến $ch.

    Sau đó chúng tôi thực hiện yêu cầu bằng hàm cURL Curl_exec, trong đó một bộ mô tả được truyền dưới dạng tham số.

    Mọi thứ đều rất logic, nhưng khi tập lệnh này được thực thi, nội dung của trang sẽ được hiển thị trên trang của chúng tôi. Nhưng điều gì sẽ xảy ra nếu chúng ta không muốn hiển thị nội dung mà muốn ghi nó vào một biến (để xử lý hoặc phân tích cú pháp tiếp theo).

    Hãy thêm một chút vào kịch bản của chúng tôi:

    0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) Curl_close($ch); ?>

    Chúng tôi có một dòng Curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.

    Curl_setopt- đặt tùy chọn. Bạn có thể tìm thấy danh sách đầy đủ các tùy chọn trên trang này: http://php.net/manual/ru/function.curl-setopt.php

    $response_data =curl_exec($ch);

    Bây giờ giá trị tập lệnh được gán cho biến $response_data, với biến này có thể thực hiện các thao tác tiếp theo. Ví dụ: bạn có thể hiển thị nội dung của nó.

    Nếu (curl_errno($ch) > 0) ( echo "Curl error: " .curl_error($ch); )

    phục vụ cho việc gỡ lỗi trong trường hợp xảy ra lỗi.

    Lấy dữ liệu bằng cURL trên dòng lệnh

    Trên dòng lệnh, chỉ cần gõ

    Curl mi-al.ru

    thay vì ở đâu mi-al.ru- địa chỉ trang web của bạn.

    Nếu bạn cần sao chép dữ liệu vào một biến, thay vì hiển thị kết quả trên màn hình, hãy làm như sau:

    Temp=`curl mi-al.ru`

    Tuy nhiên, một số dữ liệu vẫn được hiển thị:

    Để ngăn chúng hiển thị, hãy thêm phím -S:

    Temp=`curl -s mi-al.ru`

    Bạn có thể xem những gì đã được ghi lại:

    Tiếng vọng $temp | ít hơn

    Xác thực cơ bản và HTTP

    Xác thực, nói một cách đơn giản, là nhập tên người dùng và mật khẩu.

    Xác thực cơ bản là xác thực dựa trên máy chủ. Đối với điều này, hai tệp được tạo: .htaccess.htpasswd

    Nội dung của tệp .htaccess giống như thế này

    AuthName "Chỉ dành cho người dùng đã đăng ký!" AuthType Basic yêu cầu AuthUserFile của người dùng hợp lệ /home/freeforum.biz/htdocs/.htpassw

    Nội dung của tệp .htpasswd giống như thế này:

    Mial:CRdiI.ZrZQRRc

    Những thứ kia. băm mật khẩu và đăng nhập.

    Khi bạn cố gắng truy cập vào thư mục được bảo vệ bằng mật khẩu, trình duyệt sẽ hiển thị nội dung như sau:

    Xác thực HTTP là trường hợp chúng tôi nhập thông tin đăng nhập và mật khẩu vào một biểu mẫu trên trang web. Xác thực này được sử dụng khi đăng nhập vào thư, diễn đàn, v.v.

    Xác thực cURL cơ bản (PHP)

    Có một trang http://62.113.208.29/Update_FED_DAYS/ yêu cầu chúng ta đăng nhập:

    Hãy thử tập lệnh ban đầu của chúng tôi:

    0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( echo $response_data; ) Curl_close($ch); ?>

    Mặc dù script tin rằng không có lỗi nhưng chúng tôi không thích kết quả đầu ra chút nào:

    Thêm hai dòng:

    Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); Curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");

    Dòng đầu tiên chúng tôi đặt loại xác thực - cơ bản. Dòng thứ hai chứa tên và mật khẩu được phân tách bằng dấu hai chấm (trong trường hợp của chúng tôi, tên và mật khẩu giống nhau - ru-board). Hóa ra như thế này:

    0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( echo $response_data; ) Curl_close($ch); ?>

    Xác thực cURL cơ bản (trên dòng lệnh)

    Điều tương tự có thể đạt được trên dòng lệnh bằng một dòng:

    Curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/

    Tôi không quên chỉ định loại xác thực, chỉ là trong cURL loại xác thực cơ bản là mặc định.

    Mọi thứ diễn ra nhanh chóng trên dòng lệnh đến nỗi vì thất vọng, tôi đã viết chương trình sau. Cô kết nối với trang web và tải xuống bản cập nhật mới nhất:

    Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_FED_201(1).(2).(2).7z" | duy nhất | đuôi -n 1`; cuộn tròn -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp

    Chỉ với một vài lệnh nữa bạn có thể thêm:

    • giải nén kho lưu trữ vào thư mục được chỉ định;
    • tung ra các bản cập nhật ConsultantPlus (đây là những bản cập nhật dành cho nó);
    • bạn có thể kiểm tra xem bản cập nhật mới nhất đã được tải xuống hay bản cập nhật mới đã xuất hiện;
    • thêm tất cả vào Cron để cập nhật hàng ngày.

    cURL xác thực HTTP

    Xác thực HTTP cURL trong PHP

    Chúng ta cần biết:

    • địa chỉ nơi gửi dữ liệu xác thực
    • phương thức gửi GET hoặc POST
    • đăng nhập
    • mật khẩu

    Đôi khi dữ liệu này là không đủ. Hãy tìm ra nó.

    Địa chỉ bạn cần gửi dữ liệu có thể được lấy từ biểu mẫu xác thực. Ví dụ:

    Chúng tôi đang xem xét tài sản hoạt động. Những thứ kia. trang cuối cùng là đăng nhập.php. Chúng tôi cần địa chỉ đầy đủ, ví dụ: http://188.35.8.64:8080/login.php

    Ở đây chúng tôi cũng tìm thấy phương thức gửi: phương thức="đăng"

    Tôi cũng biết thông tin đăng nhập và mật khẩu: quản trị viên và qwerasdfzxcv

    Để đề phòng, đây không phải là bộ định tuyến của tôi (và tôi không biết của ai), vì vậy nếu bạn muốn làm phiền tôi thì bạn không cần phải làm bất cứ điều gì bẩn thỉu trên bộ định tuyến này.

    Những thứ kia. Một chuỗi được gửi đến máy chủ từ biểu mẫu bằng phương thức POST. Về mặt lý thuyết, tập lệnh trước đó của chúng tôi, mà chúng tôi đã thêm một dòng mới, sẽ hoạt động. Những thứ kia. xác thực phải xảy ra.

    0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( ) Curl_close($ch); ?>

    Dòng mới trong kịch bản

    Curl_setopt($ch, CURLOPT_POSTFIELDS, "LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv");

    Đây Curl_setopt- một chức năng đã quen thuộc với chúng ta để thiết lập các tùy chọn cho cURL, CURLOPT_POSTFIELDS- đây là tên của tùy chọn chúng tôi đang thiết lập. CURLOPT_POSTFIELDS chứa tất cả dữ liệu được truyền bằng phương thức POST. Vâng, chính dòng đó LOGIN_USER=quản trị viên&LOGIN_PASSWD=qwerasdfzxcv- đây chính là dữ liệu mà chúng tôi truyền tải.

    Nếu bạn kiểm tra cẩn thận biểu mẫu, bạn sẽ thấy nó cũng chứa các trường ẩn. Và dữ liệu có thể được xử lý hoặc bổ sung bằng JavaScript. Bạn có thể nghiên cứu tất cả những điều này, nhưng tôi thích một phương pháp đơn giản hơn.

    Tôi đang sử dụng Wireshark. Chương trình này được thiết kế để đánh hơi (chặn) lưu lượng truy cập. Và nó rất thuận tiện để xem chính xác những gì đang được truyền đến trang web.

    Xem video nhỏ này:

    Những thứ kia. với địa chỉ nơi dữ liệu được truyền đi, tôi đoán đúng. Nhưng chuỗi truyền hóa ra lại phức tạp hơn nhiều.

    Tôi đã nhập đúng tham số và cũng sửa đổi một chút tập lệnh để nó không chỉ đăng nhập mà còn nhận được thứ gì đó từ bộ định tuyến:

    0) ( echo "Lỗi cuộn tròn: " . Curl_error($ch); ) else ( $target_url2 = "http://188.35.8.64:8080/bsc_wlan.php"; $ch2 = Curl_init($target_url2); Curl_setopt($ ch2, CURLOPT_RETURNTRANSFER, 1); $response_data2 = Curl_exec($ch2); preg_match("|f.ssid.value = "(.*)", .ssid.value = "", "", $results2); = str_replace("";", "", $results2); echo "Tên mạng Wi-fi: $kết quả2
    "; preg_match("|f_wpa.wpapsk1.value(.*)";|", $response_data2, $results3); $results3 = str_replace("f_wpa.wpapsk1.value", "", $results3); $results3 = str_replace("="", "", $results3); $results3 = str_replace("";", "", $results3); echo "Mật khẩu mạng Wi-Fi: $kết quả3"; ) Curl_close($ch); ?>

    Nhân tiện, nếu chủ sở hữu cập nhật mật khẩu (nhưng không cập nhật chương trình cơ sở), thì mật khẩu mới luôn có thể được xem tại http://188.35.8.64:8080/model/__show_info.php?REQUIRE_FILE=/var/etc /httppasswd

    (Đây là lỗ hổng phổ biến trong các bộ định tuyến D-Link DIR-300, D-Link DIR-320 và D-Link DAP-1353).

    Xác thực HTTP cURL trên dòng lệnh

    Chúng tôi đã biết địa chỉ đầy đủ cũng như chuỗi được truyền đi. Vì vậy, nó đơn giản:

    Curl --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.php

    Tôi nghĩ mọi thứ đều rõ ràng vì chúng tôi đã xem xét những thời hạn này. Nếu ai không hiểu thì hỏi ở phần bình luận.

    Một ví dụ về việc sử dụng cURL để truy xuất và phân tích dữ liệu sẽ là tập lệnh sau:

    Curl -s --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.php > /dev/null && echo -e "nn " && echo "Tên mạng Wi-Fi" && Curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f.ssid.value = "(.)*";" | sed "s/f.ssid.value = "//" | sed "s/";//" && echo "Mật khẩu mạng Wi-Fi" && Curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f_wpa.wpapsk1.(.)*";" | sed "s/f_wpa.wpapsk1.value//" | sed "s/";//" | sed "s/="//"

    Các trường hợp ủy quyền phức tạp: AJAX, JQuery, JavaScript, v.v.

    Sẽ đúng hơn nếu viết tiêu đề này như sau: Các trường hợp ủy quyền “phức tạp”. Những thứ kia. Đặt từ “phức tạp” trong dấu ngoặc kép. Chúng chỉ có vẻ phức tạp ngay từ cái nhìn đầu tiên khi không rõ ràng: việc gửi xảy ra ở đâu, tên trường là gì, chính xác những gì được gửi, v.v.

    Nhưng trên thực tế, tất cả chúng đều thuộc về phương thức POST hoặc GET. Để hiểu chính xác những gì đang được gửi, bạn có thể lưu trang có biểu mẫu vào đĩa của mình và thêm chức năng hiển thị dữ liệu được tạo để gửi tới nút gửi. Hoặc thậm chí đơn giản hơn - như tôi, Wireshark.

    Nếu dữ liệu đúng nhưng xác thực không xảy ra thì bạn cần tìm hiểu theo các hướng sau:

    • đặt chuỗi giới thiệu chính xác
    • đặt chuỗi tác nhân người dùng "chính xác".

    Tất cả điều này có thể được thực hiện bằng các phương pháp cURL cơ bản, nhưng tôi sẽ không đi sâu vào vấn đề đó. Bài học đã đủ dài nhưng tôi cũng muốn giới thiệu một số thủ thuật với cURL.

    Mẹo và thủ thuật cURL

    cURL và nhận cookie ngoài CURLOPT_COOKIEJAR

    Tôi nghĩ rõ ràng là cURL xử lý cookie một cách chính xác - lưu trữ chúng, sử dụng chúng khi máy chủ yêu cầu, v.v. Nhưng đôi khi cookie cần phải được lưu. Có một tùy chọn cho việc này được gọi là CURLOPT_COOKIEJAR, nhưng không phải lúc nào cũng có thể sử dụng nó. Đây là thủ thuật đầu tiên của chúng tôi dành riêng cho.

    Đôi khi, do cách cấu hình PHP trên máy chủ, chúng tôi không có các tùy chọn như CURLOPT_COOKIEJAR (cho phép bạn lưu cookie đã nhận vào một tệp) và CURLOPT_COOKIEFILE (cho phép bạn sử dụng cookie từ một tệp). Bởi vì họ nói rằng bằng cách sử dụng các tùy chọn này, chúng tôi có thể đánh cắp bất kỳ tệp nào từ máy chủ của họ. Đây là giải pháp cho vấn đề này:

    1) Chúng tôi không sử dụng CURLOPT_FOLLOWLOCATION

    2) Sử dụngcurl_setopt($ch, CURLOPT_HEADER, 1)

    3) Thu thập cookie từ tiêu đề như thế này:

    Preg_match_all("|Set-Cookie: (.*);|U", $content, $results); $cookies = implode(";", $results);

    4) Đặt chúng bằng cách sử dụngcurl_setopt($ch, CURLOPT_COOKIE, $cookies);

    Mẹo thứ hai. Chúng ta có thể biến kẻ tấn công thành nạn nhân. Để tránh trở thành nạn nhân của cuộc tấn công trung gian, chúng tôi thực hiện việc này.

    Vui lòng mọi người dừng đặt cài đặt CURLOPT_SSL_VERIFYPEER thành sai hoặc 0. Nếu bản cài đặt PHP của bạn không có bộ chứng chỉ CA gốc cập nhật, hãy tải xuống một bộ chứng chỉ từ trang web Curl và lưu nó vào máy chủ của bạn:

    Sau đó đặt đường dẫn trong tệp php.ini của bạn, ví dụ trên Windows:

    Curl.cainfo=c:phpcacert.pem

    Việc vô hiệu hóa CURLOPT_SSL_VERIFYPEER cho phép thực hiện một cuộc tấn công trung gian (MITM), điều mà chúng tôi không muốn!

    Vâng, lời khuyên cuối cùng cho ngày hôm nay. Bạn có biết rằng có thể có một số lượng lớn yêu cầu cuộn tròn không đồng bộ không?

    Đối với điều này bạn có thể sử dụng Curl_multi_init. Chi tiết và mã ví dụ trong tài liệu chính thức http://php.net/manual/ru/function.curl-multi-init.php