Các công cụ dòng lệnh cho nhà phát triển web. Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web


cURL là một công cụ dòng lệnh để nhận hoặc gửi dữ liệu bằng cú pháp URL.

Nếu bạn làm việc trong bộ phận hỗ trợ, bạn sẽ có thể sử dụng các lệnh cURL để khắc phục sự cố ứng dụng web. cURL là một tiện ích đa nền tảng cho Windows, MAC và UNIX.
Sau đây là một số ví dụ về cú pháp thường được sử dụng.

1. Kiểm tra kết nối với URL

Nếu bạn đang sử dụng hệ thống UNIX và đang cố gắng kết nối với url bên ngoài, thì trước tiên hãy kiểm tra xem bạn có thể truy cập tài nguyên thông qua curl hay không. Để thực hiện việc này, hãy sử dụng lệnh sau:

# curl yoururl.com

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

# curl yoururl.com> yoururl.html

Ví dụ:

# curl 74.125.68.100> /tmp/google.html

Ví dụ trên sẽ lưu tất cả nội dung từ máy chủ lưu trữ 74.125.68.100 vào /tmp/google.html.

3. Hiển thị tiêu đề của yêu cầu và phản hồi

Nếu bạn muốn đảm bảo rằng bạn đang nhận được tiêu đề yêu cầu và phản hồi như mong đợi, hãy sử dụng lệnh sau:

# curl -v yoururl.com

Ví dụ:

# curl -v 74.125.68.100 * Sắp kết nối () với 74.125.68.100 cổng 80 (# 0) * Đang thử 74.125.68.100 ... * Đã kết nối với 74.125.68.100 (74.125.68.100) cổng 80 (# 0)> GET / HTTP / 1.1> Tác nhân người dùng: curl / 7.29.0> Máy chủ: 74.125.68.100> Chấp nhận: * / *>< HTTP/1.1 200 OK

4. Tải ở tốc độ tối đa

Nếu bạn cần biết mất bao lâu để tải xuống ở một tốc độ nhất định, hãy sử dụng lệnh sau:

# curl –-limit-rate 2000B

Ví dụ:

# curl –-limit-rate 2000B 74.125.68.100

5. Sử dụng proxy để kết nối

Nếu bạn cần kiểm tra xem có thể sử dụng proxy hay không, hãy sử dụng cú pháp sau:

# curl --proxyyourproxy: port http://yoururl.com

6. Kiểm tra URL với phần giới thiệu của tiêu đề

Để khắc phục một sự cố cụ thể, bạn có thể sử dụng Curl để chèn dữ liệu của mình vào tiêu đề. Hãy xem xét ví dụ sau về một yêu cầu với Loại-Nội dung:

# curl --header "Content-Type: application / json" http://yoururl.com

Chúng tôi yêu cầu curl chuyển Content-Type làm ứng dụng / json trong tiêu đề yêu cầu.

7. Thêm một tiêu đề bổ sung

Bạn có thể thêm tiêu đề vào yêu cầu bằng cú pháp - tiêu đề.

# curl –-header “X-CustomHeader: GeekFlare” http://yoururl.com

Ví dụ:

# curl -v --header "X-CustomHeader: GeekFlare" 74.125.68 * Sắp kết nối () với 74.125.68.100 cổng 80 (# 0) * Đang thử 74.125.68.100 ... * Đã kết nối với 74.125.68.100 (74.125. 68.100) cổng 80 (# 0)> GET / HTTP / 1.1> Tác nhân người dùng: curl / 7.29.0> Máy chủ: 74.125.68.100> Chấp nhận: * / *> X-CustomHeader: GeekFlare>< HTTP/1.1 200 OK

8. Chỉ mở tiêu đề phản hồi

Nếu bạn muốn nhanh chóng kiểm tra tiêu đề phản hồi, bạn có thể sử dụng cú pháp sau.

# curl --head http://yoururl.com

# curl -I 74.125.68.100 HTTP / 1.1 200 OK Ngày: Chủ nhật, 18 tháng 1 năm 2015 08:31:22 GMT Hết hạn: -1 Cache-Control: private, max-age = 0 Content-Type: text / html; bảng mã = ​​ISO-8859-1 Set-Cookie: NID = 67 = SpnXKTDUhw7QGakIeLxmDSF; hết hạn = Thứ Hai, ngày 20 tháng 7 năm 2015 08:31:22 GMT; đường dẫn = /; miền =.; HttpOnly P3P: CP = "Đây không phải là chính sách P3P! Hãy xem http://www.google.com/support/accounts/bin/answer.py?hl=vi&answer=151657 để biết thêm thông tin." Máy chủ: gws X-XSS-Protection: 1; mode = block X-Frame-Options: SAMEORIGIN Alternate-Protocol: 80: quic, p = 0.02 Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding #

9. Kết nối HTTPS / SSLURL và bỏ qua mọi lỗi chứng chỉ SSL

Nếu bạn cần truy cập URL https đang gặp lỗi chứng chỉ do tên máy chủ không khớp, bạn có thể sử dụng cú pháp sau.

curl --insecure https://yoururl.com

10. Kết nối bằng giao thức cụ thể (SSL / TLS)

Để kết nối với URL chỉ bằng SSL V2 / V3 hoặc TLS, hãy sử dụng cú pháp sau.

Để kết nối bằng SSLV2:

# curl --sslv2 https://yoururl.com

Để kết nối bằng SSLV3:

# curl --sslv3 https://yoururl.com

Để kết nối qua TLS:

# curl --tlsv1 https://yoururl.com

11. Tải xuống tệp từ máy chủ FTP

Bạn có thể sử dụng cURL để tải xuống tệp từ máy chủ ftp với tên người dùng và mật khẩu.

# curl -u người dùng: password -O ftp: //ftpurl/style.css

Bạn luôn có thể sử dụng "-v" với bất kỳ cú pháp nào cho đầu ra dài dòng.

Sử dụng cURL trực tuyến

Có nó là có thể. Bạn có thể thực thi cURL từ xa bằng các công cụ sau.
CURL trực tuyến là một công cụ nhẹ để trích xuất url trực tuyến và thêm các tham số sau.

Connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent

Ví dụ đầu ra:



Trình tạo dòng lệnh cURL - Cho phép bạn tạo một lệnh cURL mà bạn có thể sử dụng để nhập thông tin vào giao diện người dùng.

cURL là một tiện ích hữu ích để khắc phục sự cố kết nối trong thời gian thực.

Cuộc sống của một nhà phát triển web được bao phủ bởi sự phức tạp. Nó đặc biệt bực bội khi không rõ nguồn gốc của những biến chứng này. Có phải vấn đề với việc gửi yêu cầu hoặc với phản hồi, hoặc với thư viện của bên thứ ba hoặc API bên ngoài bị lỗi? Có rất nhiều cách thích ứng khác nhau có thể giúp cuộc sống của chúng ta dễ dàng hơn. Đây là một số công cụ dòng lệnh mà cá nhân tôi thấy vô giá.

Xoăn
cURL là một chương trình để truyền dữ liệu qua các giao thức khác nhau, tương tự như wget. Sự khác biệt chính là theo mặc định, wget lưu vào một tệp, trong khi cURL in ra dòng lệnh. Điều này giúp bạn dễ dàng xem nội dung của trang web. Ví dụ: đây là cách nhanh chóng lấy IP bên ngoài hiện tại của bạn:

$ curl ifconfig.me 93,96.141,93
Thông số -tôi(hiển thị tiêu đề) và -TÔI(chỉ hiển thị tiêu đề) làm cho cURL trở thành một công cụ tuyệt vời để gỡ lỗi phản hồi HTTP và phân tích chính xác những gì máy chủ đang gửi cho bạn:

$ curl -I site HTTP / 1.1 200 OK Máy chủ: nginx Ngày: Thu, 18/08/2011 14:15:36 GMT Nội dung-Loại: text / html; charset = utf-8 Kết nối: giữ sống Giữ sống: hết giờ = 25
Tham số -L cũng hữu ích, nó làm cho cURL tự động theo các chuyển hướng. cURL hỗ trợ xác thực HTTP, cookie, đường hầm proxy HTTP, cài đặt tiêu đề thủ công và hơn thế nữa.

Bao vây
- một công cụ để kiểm tra căng thẳng. Thêm vào đó, nó có một tùy chọn tiện dụng -g rất giống với curl –iL mà còn hiển thị cho bạn các tiêu đề yêu cầu http. Đây là một ví dụ từ google.com (một số tiêu đề đã bị xóa cho ngắn gọn):

$ siege -g www.google.com GET / HTTP / 1.1 Máy chủ: www.google.com Tác nhân người dùng: JoeDog / 1.00 (X11; I; Siege 2.70) Kết nối: đóng HTTP / 1.1 302 Vị trí tìm thấy: http: // www.google.co.uk/ Loại-Nội dung: text / html; charset = UTF-8 Máy chủ: gws Nội dung-Độ dài: 221 Kết nối: đóng GET / HTTP / 1.1 Máy chủ: www.google.co.uk Tác nhân người dùng: JoeDog / 1.00 (X11; I; Siege 2.70) Kết nối: đóng HTTP / 1.1 200 OK Loại Nội dung: text / html; bộ ký tự = ISO-8859-1 X-XSS-Protection: 1; mode = block Kết nối: đóng
Nhưng những gì Siege thực sự tuyệt vời là thử nghiệm tải. Giống như điểm chuẩn Apache ab, anh ta có thể gửi nhiều yêu cầu đồng thời đến trang web và xem cách anh ta xử lý lưu lượng truy cập. Ví dụ sau cho thấy cách chúng tôi kiểm tra Google với 20 truy vấn trong 30 giây, sau đó nó xuất ra kết quả:

$ siege -c20 www.google.co.uk -b -t30s ... Nâng máy chủ bao vây ... xong. Giao dịch: 1400 lượt truy cập Tính khả dụng: 100,00% Thời gian đã trôi qua: 29,22 giây Dữ liệu đã truyền: 13,32 MB Thời gian phản hồi: 0,41 giây Tốc độ giao dịch: 47,91 trans / giây Thông lượng: 0,46 MB / giây Đồng thời: 19,53 Giao dịch thành công: 1400 Giao dịch không thành công: 0 Giao dịch dài nhất: 4.08 Giao dịch ngắn nhất: 0.08
Một trong những tính năng hữu ích nhất của Siege là nó có thể hoạt động không chỉ với một địa chỉ mà còn với danh sách các URL từ một tệp. Điều này rất tốt cho việc kiểm tra tải vì bạn có thể mô phỏng lưu lượng truy cập trong thế giới thực trên trang web của mình, thay vì chỉ lặp đi lặp lại cùng một URL. Ví dụ: đây là cách sử dụng Siege để tải máy chủ bằng địa chỉ từ nhật ký Apache của bạn:

$ cut -d "" -f7 /var/log/apache2/access.log> urls.txt $ siege -c -b -f urls.txt
Ngrep
Để phân tích lưu lượng truy cập nghiêm túc, có Wireshark với hàng nghìn cài đặt, bộ lọc và cấu hình. Ngoài ra còn có một phiên bản dòng lệnh tshark... Nhưng đối với các tác vụ đơn giản, tôi coi chức năng của Wireshark là thừa. Vì vậy, miễn là tôi không cần một vũ khí mạnh mẽ, tôi sử dụng. Nó cho phép bạn làm điều tương tự với các gói mạng như grep với các tệp.

Đối với lưu lượng truy cập web, hầu như bạn sẽ luôn muốn sử dụng tham số -Wđể duy trì định dạng chuỗi cũng như tùy chọn -qẩn thông tin dư thừa về các gói không phù hợp. Đây là một ví dụ về lệnh chặn tất cả các gói bằng lệnh GET hoặc POST:

Ngrep -q -W byline "^ (GET | POST). *"
Bạn có thể thêm một bộ lọc bổ sung cho các gói, ví dụ: theo máy chủ lưu trữ, địa chỉ IP hoặc cổng nhất định. Đây là bộ lọc cho tất cả lưu lượng truy cập vào và ra vào google.com, cổng 80, chứa từ “tìm kiếm”.

Ngrep -q -W byline "tìm kiếm" máy chủ www.google.com và cổng 80

cuộn tròn (1)
  • >> Xoăn (1) (Người đàn ông TBBOOCH: lPNBODSCH Y RTYLMBDOSCHE RTPZTBNNSCH RPMSHUPCHBFEMSHULPZP HTPCHOS)
  • CÓ THỂ Xoăn PVOBTKHTSEO CH VBE LMAYUECHCHI UMPCH.
  • TÊN

    curl - chuyển một URL

    TÓM TẮC

    Xoăn

    SỰ MIÊU TẢ

    Xoăn là một công cụ để truyền dữ liệu từ hoặc đến một 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 một loạt các 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 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 truyền. Xem (3) để biết thêm 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ư trong:

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

    Hiện tại, không hỗ trợ lồng các chuỗi, nhưng bạn có thể sử dụng một số chuỗi bên cạnh nhau:

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

    Kể từ 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 mà không có tiền tố protocol: //, curl sẽ cố gắng đoán xem bạn có thể muốn giao thức nào. Sau đó, nó sẽ mặc định là HTTP nhưng hãy 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ẽ giả sử bạn muốn nói FTP.

    MÁY ĐO TIẾN ĐỘ

    curl thường hiển thị đồng hồ đo tiến trình trong quá trình hoạt động, cho biết lượng dữ liệu đã 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 vào thiết bị đầu cuối theo mặc định, nếu bạn gọi curl để thực hiện một thao tác và nó sắp ghi dữ liệu vào thiết bị đầu cuối, nó vô hiệu hóađồng hồ đo tiến độ vì nếu không nó sẽ làm rối tung đồng hồ đo tiến độ trộn đầu ra và dữ liệu phản hồi.

    Nếu bạn muốn một bộ đ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 đến 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 một "thanh" tiến trình thay vì đồng hồ 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 thêm vào tệp đích thay vì ghi đè nó. Nếu tệp 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ế độ nối thêm một 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 kép. Điều này cũng có thể được thiết lập với -H / - tiêu đề tất nhiên.

    Nếu tùy chọn này được đặt nhiều lần, tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. --Anyauth (HTTP) Cho curl biết phương thức xác thực của chính nó và sử dụng phương pháp bảo mật nhất mà trang web từ xa tuyên bố rằng nó hỗ trợ. Điều này được thực hiện trước tiên bằng cách 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 mạng vòng quanh 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à --đàm phán.

    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 dữ liệu được gửi hai lần và sau đó ứng dụng khách phải có thể tua lại. Nếu cần phát sinh khi tải lên từ stdin, thì thao tác tải lên sẽ không thành công.

    Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau 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 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ó ký tự "=" nào được sử dụng trong dòng, nó được coi như một tên tệp để sử dụng để đọc các dòng cookie đã lưu trữ trước đó, từ đó sẽ được sử dụng trong phiên này nếu chúng khớp. Sử dụng phương pháp này cũng kích hoạt "trình phân tích cú pháp cookie" sẽ làm cho các cookie đến của bản ghi cuộn tròn cũng có thể hữu ích nếu bạn "đang sử dụng điều 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 thuần túy hoặc định dạng tệp cookie Netscape / Mozilla.

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

    Nếu tùy chọn này được đặt nhiều lần, 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 đến stdout ở 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) Cho curl sử dụng xác thực HTTP cơ bản. Đâ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--đàm phán).

    Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. - môn sinh (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 được 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 đè các tùy chọn khác. --compressed (HTTP) Yêu cầu phản hồi nén bằng cách sử dụ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. - hết thời gian kết nối 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 curl đã kết nối, tùy chọn này không còn được sử 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, tùy chọn cuối cùng sẽ được sử dụng. -c / - cookie-jar Chỉ định tệp bạn muốn curl ghi tất cả cookie sau khi hoàn thành thao tác. Curl ghi tất cả cookie đã đọc trước đó từ một tệp được chỉ định cũng như tất cả cookie nhận được từ (các) máy chủ từ xa. Nếu không có cookie nào được biết, sẽ không có tệp 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 duy nhất, "-", cookie sẽ được ghi vào stdout.

    GHI CHÚ Nếu không thể tạo hoặc ghi vào hộp 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 lỗi rõ ràng. Sử dụng -v sẽ nhận được một cảnh báo hiển thị, nhưng đó là phản hồi hiển thị duy nhất mà 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 chênh lệch nhất định. Phần bù đã cho là số byte chính xác sẽ được đếm 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 -" để cho curl biết để 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 nhất định để tìm ra điều đó.

    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ẽ được sử dụng. --create-dirs Khi được sử dụng cùng với tùy chọn -o, curl sẽ tạo ra hệ thống phân cấp thư mục cục bộ cần thiết khi cần thiết. Tùy chọn này tạo ra các dirs được đề cập với tùy chọn -o, không có gì khác. Nếu tên tệp -o không sử dụng ký tự hoặc nếu các ký tự mà nó đề cập đã tồn tại, thì sẽ không có dir nào được tạo.

    Để tạo thư mục từ xa khi sử dụng FTP, hãy thử --ftp-create-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, các lần xuất hiện sau không có gì khác biệt. -d / - dữ liệu (HTTP) Gửi dữ liệu được chỉ định trong một yêu cầu ĐĂNG đến máy chủ HTTP, theo cách có thể mô phỏng như thể người dùng đã điền vào 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ư đã 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 chuyển dữ liệu đến máy chủ bằng ứng dụng loại nội dung / x-www-form-urlencoded. So với -F / - biểu mẫu... 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 dấu & -letter phân tách. Do đó, việc sử dụng "-d name = daniel -d skill = lousy" sẽ tạo ra một đoạn bài đăng trông giống như "name = daniel & skill = lousy".

    Nếu bạn bắt đầu dữ liệu bằng ký tự @, 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 curl đọc dữ liệu từ stdin. Nội dung của tệp phải được mã hóa url. Nhiều tệp cũng có thể được chỉ định. Do đó, việc đăng dữ liệu từ tệp có tên "foobar" sẽ được thực hiện với --dữ liệu@foobar ".

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

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

    Nếu tùy chọn này được sử dụng nhiều lần, các 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 cho -d / - dữ liệu lựa chọn.

    Nếu tùy chọn này được sử dụng nhiều lần, các tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-binary (HTTP) Điều này đăng dữ liệu theo cách tương tự như --data-ascii không, mặc dù khi sử dụng tùy chọn này, toàn bộ ngữ cảnh của dữ liệu đã đăng đượ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 mới của --data-ascii tùy chọn này là dành cho bạn.

    Nếu tùy chọn này được sử dụng nhiều lần, các 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 Thông báo HTTP. Đây là xác thực ngăn không cho mật khẩu được gửi qua đường dây điện ở dạng văn bản rõ ràng. Sử dụng điều này kết hợp vớ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, --đàm phán--anyauth cho các tùy chọn liên quan.

    Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. --disable-eprt (FTP) Cho curl biết để vô hiệu hóa việc sử dụng các lệnh EPRT và LPRT khi thực hiện truyền FTP đang hoạt động. Curl thường sẽ luôn cố gắng 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à 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) Cho curl biết để vô hiệu hóa việc sử dụng lệnh EPSV khi thực hiện truyền FTP thụ động. Curl thường sẽ luôn cố gắng 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 / - tiêu đề kết xuất Ghi tiêu đề giao thức vào tệp được chỉ định.

    Tùy chọn này rất hữu ích để sử dụng khi bạn muốn lưu trữ các tiêu đề mà một trang web HTTP gửi cho bạn. Sau đó, cookie từ các tiêu đề có thể được đọc trong lần gọi 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 là một 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, tùy chọn cuối cùng sẽ được sử dụng. -e / - 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 với -H / - tiêu đề cờ tất nhiên. Khi sử dụng với -L / - vị trí bạn có thể nối thêm "; auto" vào URL --referer để làm cho URL tự động đặt URL trước đó khi nó theo sau tiêu đề Location:. 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, 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ật mã. Sử dụng - danh sáchđể in danh sách các công cụ được hỗ trợ theo thời gian xây dựng. Lưu ý rằng không phải tất cả (hoặc không có) động cơ nào có thể khả dụng tại thời điểm chạy. --en environment (RISC OS ONLY) Đặ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 dễ dàng hơn việc trích xuất thông tin hữu ích sau khi chạy curl.

    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 Entropy Gathering Daemon. Ổ cắm được sử dụng để khởi tạo động cơ ngẫu nhiên cho các kết nối SSL. Xem thêm --random-file lựa chọn. -E / - cert (HTTPS) Cho curl sử dụng tệp chứng chỉ đã chỉ định khi tải 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 cá nhân và chứng chỉ riêng được ghép nối!

    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ẽ được sử dụng. --cert-type (SSL) Cho biết loại chứng chỉ mà chứng chỉ được cung cấp đang sử dụng. 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, 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ỉ đã chỉ định để xác minh đối tượng 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.

    curl nhận dạng biến môi trường có tên "CURL_CA_BUNDLE" nếu biến đó được đặt và sử dụng đường dẫn đã cho làm đường dẫn đến gói chứng chỉ CA. Tùy chọn này ghi đè biến đó.

    Phiên bản windows của curl sẽ tự động tìm kiếm tệp chứng chỉ CA có tên "curl-ca-pack.crt", nằm 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, tùy chọn cuối cùng sẽ được sử dụng. - đường ống (HTTPS) Cho curl sử dụng thư mục chứng chỉ đã chỉ định để xác minh ngang hàng. Các 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 - đường ống 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, tùy chọn cuối cùng sẽ được sử dụng. -f / - fail (HTTP) Không thành công (không có đầu ra 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. để đối phó tốt hơn với các lần thử không thành công. 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õ như vậy (thường cũng mô tả lý do và hơn thế nữa). Cờ này sẽ ngăn curl xuất ra và trả về lỗi 22.

    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 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 một đườ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. Sử dụng tùy chọn này, curl thay vào đó 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 tính năng tạo thư mục. --ftp-method (FTP) Kiểm soát phương thức curl 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 những lựa chọn thay thế sau: multicwd curl thực hiện một thao tác CWD duy nhất cho mỗi phần đường dẫn trong URL đã cho. Đối với cấu trúc 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. Nocwd curl hoàn toàn không có TKT. curl sẽ thực hiện SIZE, RETR, STOR, v.v. và cung cấp một đườ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" (giống như trong trường hợp đa ngôn ngữ). Đ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 đầy đủ cho "đa dâm". --ftp-pasv (FTP) Sử dụng PASV khi chuyển. PASV là hành vi mặc định nội bộ, nhưng 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, các lần xuất hiện sau không có gì khác biệt.

    Ftp-thay thế-cho-người dùng (FTP) Nếu 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 "s 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 vào 7.15.5) --ftp-Bỏ qua-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, tùy chọn thứ hai sẽ lại sử dụng địa chỉ được đề xuất của máy chủ. --Ftp-ssl (FTP) Cố gắng 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 sử dụ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 vào 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 / - biểu mẫu (HTTP) Điều này cho phép curl mô phỏng một biểu mẫu đã điền trong đó người dùng đã nhấn nút gửi. Điều này gây ra cuộn tròn đối với dữ liệu ĐĂNG bằng cách sử dụng đa phần / biểu mẫu-dữ liệu kiểu nội dung theo RFC1867. Điều này cho phép tải lên các tệp nhị phân, v.v. Để buộc phần "nội dung" là tệp, hãy đặt trước tên tệp bằng dấu @. Để chỉ lấy phần nội dung từ tệp, hãy đặt tiền tố tên tệp bằng chữ cái<. 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 đó "mật khẩu" 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 tên tệp nên ở. Điều này áp dụng cho cả @ và< constructs.

    Bạn cũng có thể cho curl biết Content-Type cần sử dụng 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 " [email được bảo vệ]; filename = nameinpost "url.com

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

    Tùy chọn này có thể được sử dụng nhiều lần. --form-string (HTTP) Tương tự với --hình thức ngoại trừ việc 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 sẽ tắt "trình phân tích cú pháp URL globbing". Khi bạn đặt tùy chọn này, bạn có thể chỉ định các URL có chứa các ký tự () mà không cần cuộn tròn chúng được diễn giải. 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 với -d / - dữ liệu hoặc là --data-binaryđược sử dụng trong một yêu cầu HTTP GET thay vì yêu cầu POST mà nếu không sẽ đượ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, các lần xuất hiện sau không có gì khác biệt. -h / - help Trợ giúp về cách sử dụng. -H / - tiêu đề

    (HTTP) Tiêu đề bổ sung để sử dụng khi tải một trang web. Bạn có thể chỉ định bất kỳ số lượng tiêu đề phụ nào. 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 đề đặt bên ngoài của bạn sẽ được sử dụng thay vì tiêu đề nội bộ. Điều này cho phép bạn làm những thứ thậm chí còn phức tạp hơn so với cách làm xoă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 một tiêu đề không có nội dung ở phía bên phải của dấu hai chấm sẽ ngăn không cho tiêu đề đó xuất hiện.

    curl sẽ đảm bảo rằng mỗi tiêu đề bạn thêm / thay thế đượ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 phải thêm nó như một phần của nội dung tiêu đề: không thêm dòng mới hoặc dấu xuống dòng, chúng sẽ chỉ làm rối tung mọi thứ cho bạn.

    Xem thêm -A / - tác nhân người dùng-e / - 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ế / loại bỏ nhiều tiêu đề. --ignore-content-length (HTTP) Bỏ qua tiêu đề Content-Length. Điều này đặc biệt hữu ích cho các máy chủ chạy Apache 1.x, sẽ báo cáo Độ dài Nội dung không chính xác cho các tệp lớn hơn 2 gigabyte. -i / - bao gồm (HTTP) Bao gồm tiêu đề HTTP trong đầ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 vô hiệu hóa tiêu đề bao gồm. --giao diện Thực hiện một hoạt động 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ể giống như sau:

    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ẽ được sử dụng. -I / - head (HTTP / FTP / FILE) Chỉ tìm nạp tiêu đề HTTP! Máy chủ HTTP có tính năng HEAD lệnh mà lệnh này sử dụng để không lấy 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ỉ vô hiệu hóa tiêu đề một lần nữa. -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". Điều này về cơ bản 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 điển hình luôn loại bỏ cookie phiên khi chúng "đóng cửa".

    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 curl 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 đượ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" sẽ 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, thì lần thứ hai sẽ vô hiệu hóa nó một lần nữa. --Chìa khóa (SSL) Tên tệp khóa cá nhân. Cho phép bạn cung cấp khóa cá nhân 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, tùy chọn cuối cùng sẽ được sử dụng. --loại chính (SSL) Loại tệp khóa cá nhân. 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, tùy chọn cuối cùng sẽ được sử dụng. --krb4 (FTP) Bật xác thực và sử dụng 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, thì "riêng tư" sẽ được sử dụng thay thế.

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

    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ẽ được sử dụng. -K / - cấu hình Chỉ định tệp cấu hình để đọc các đối số curl. Tệp cấu hình là 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. Các tùy chọn và các 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, 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à một nhận xét.

    Chỉ định tên tệp là "-" để 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 và không chỉ đơn giản là viết URL trên dòng riêng của nó. Vì vậy, nó có thể trông giống như sau:

    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 tệp đó 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ự này:

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

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

    Tốc độ đã cho được đo bằng byte / giây, trừ khi một hậu tố được thêm vào. Thêm "k" hoặc "K" sẽ tính số dưới dạng kilobyte, "m" hoặc M "tạo thành megabyte trong khi" g "hoặc" G "tạo thành 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 hơn và có thể làm tê liệt giới hạn tốc độ một chút, để giúp giữ cho 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, tùy chọn cuối cùng sẽ được sử dụng. -l / - chỉ danh sách (FTP) Khi liệt kê một thư mục FTP, công tắc này buộc chế độ xem chỉ tên. Đặc biệt hữu ích nếu bạn muốn phân tích cú pháp máy nội dung của một thư mục FTP vì chế độ xem thư mục bình thường không sử dụng giao diện hoặc định dạng tiêu chuẩn.

    Tùy chọn này sẽ gửi một lệnh FTP NLST. Một số máy chủ FTP chỉ liệt kê các tệp trong phản hồi của chúng 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ỉ tắt danh sách. --local-port [-num] Đặt số ưu tiên hoặc dải số cổng cục bộ để sử dụng cho (các) kết nối. Lưu ý rằng bản chất số cổng là một nguồn tài nguyên khan hiếm, đôi khi sẽ bận rộn, vì vậy việc đặt phạm vi này thành một thứ quá hẹp có thể gây ra các lỗi thiết lập kết nối không cần thiết. (Đã thêm vào 7.15.2) -L / - vị trí (HTTP / HTTPS) Nếu máy chủ báo cáo rằng trang được yêu cầu đã chuyển đến một vị trí khác (được chỉ ra bằng Vị trí: tiêu đề và mã phản hồi 3XX), tùy chọn này sẽ làm lại cuộn yêu cầu về địa điểm mới. Nếu được sử dụng cùng với -i / - bao gồm hoặc là -Tôi / - người đứng đầ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 đăng nhập của nó đến máy chủ ban đầu. Nếu chuyển hướng đến 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 - vị trí đá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 theo sau 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 vô hiệu hóa vị trí theo sau. - vị trí đá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 đến tất cả các máy chủ mà trang web có thể chuyển hướng đến. Điều này có thể dẫn đến hoặc không thể dẫn đến vi phạm bảo mật nếu trang web chuyển hướng bạn thực hiện một trang web mà bạn sẽ gửi thông tin xác thực của mình (là bản rõ trong trường hợp xác thực HTTP cơ bả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 vô hiệu hóa vị trí theo 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à curl sẽ trở 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 những tệp như vậy, tùy chọn này không có hiệu lực ngay cả khi kết thúc chuyển tệp lớn hơn giới hạn đã cho này. Điều này liên quan đến cả truyền 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ộ hoạt động. Đ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 trong nhiều giờ do mạng chậm hoặc liên kết đi xuống. Xem thêm - hết thời gian kết nối lựa chọn.

    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ẽ được sử dụng. -M / - hướng dẫn sử dụng Sách hướng dẫn. Hiển thị văn bản trợ giúp lớn. -n / - netrc Làm cho curl quét .netrc tệp trong thư mục chính của người dùng cho tên đăng nhập và mật khẩu. Điều này thường được sử dụng cho ftp trên unix. Nếu được sử dụng với http, curl sẽ cho phép xác thực người dùng. Xem (4) hoặc là (1) để biết chi tiết về định dạng tệp. Curl sẽ không phàn nàn nếu tệp đó không có quyền phù hợp (nó không được phép đọc theo nhóm hoặc thế giới). 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 .netrcđể cho phép curl thành ftp vào máy host.domain.com với tên người dùng "tôi" và mật khẩu "bí mật" phải giống như sau:

    machine host.domain.com đăng nhập bí mật mật khẩu của tô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 vô hiệu hóa việc sử dụng netrc. --netrc-option 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. --ne Đàm phán (HTTP) Cho phép xác thực GSS-Đàm phán. Phương pháp GSS-Negotiate được thiết kế bởi Microsoft và được sử dụng trong các ứng dụng web của họ. Nó chủ yếu có nghĩa là 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 pháp xác thực khác. Để biết thêm thông tin, hãy xem bản nháp IETF nháp-brezak-spnego-http-04.txt.

    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 GSSAPI. Điều này không phải là rất phổ biến. Sử dụng -V / - phiên bảnđể xem phiên bản của bạn có hỗ trợ GSS-Negotiate 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 giả mạo -u / - người dùng để 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 được sử dụng thực sự.

    Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -N / - no-buffer Vô hiệu hóa bộ đệm của luồng đầu ra. Trong các tình huống công việc bình thường, curl sẽ sử dụng luồng đầu ra có bộ đệm tiêu chuẩn sẽ có tác dụng là nó sẽ xuất dữ liệu theo từng phần, 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 bộ đệ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 vào bộ đệm. --ntlm (HTTP) Cho phép xác thực NTLM. Phương pháp xác thực NTLM được thiết kế bởi Microsoft và được sử dụng bởi các máy chủ web IIS. Nó là một giao thức độc quyền, được thiết kế bởi những người thông minh và được thực hiện một cách hoàn chỉnh dựa trên những nỗ lực của họ. Loại hành vi này không nên được chứng thực, thay vào đó bạn nên khuyến khích mọi người sử dụng NTLM chuyển sang phương thức xác thực công khai và tài liệu. Chẳng hạn như Digest.

    Nếu bạn muốn bật NTLM để xác thực proxy của mình, thì hãy sử dụng --proxy-ntlm.

    Tùy chọn này yêu cầu thư viện được xây dựng với hỗ trợ SSL. Sử dụng -V / - phiên bảnđể 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, các lần xuất hiện sau không có gì khác biệt. -o / - đầu ra Ghi đầu ra vào thay vì stdout. 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:

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

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

    Tên tệp từ xa để sử dụng để lưu được trích xuất từ ​​URL đã cho, không có gì khác.

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

    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ẽ được sử dụng. --proxy-anyauth Cho curl biết để chọn một phương pháp xác thực phù hợp khi giao tiếp với proxy đã cho. Điều này sẽ gây ra thêm một yêu cầu / phản hồi khứ 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 việc sử dụng proxy - bất kỳ xác thực nào. --proxy-basic Cho curl sử dụng xác thực HTTP cơ bản 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 pháp xác thực mặc định mà curl 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 cơ bản của proxy. --proxy-thông báo cho curl sử dụng xác thực Thông báo HTTP khi giao tiếp với proxy đã cho. Sử dụng --tiêuđể bật Thông báo HTTP 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 vô hiệu hóa Thông báo HTTP proxy. --proxy-ntlm Cho curl sử dụng xác thực NTLM HTTP khi giao tiếp với proxy đã cho. Sử dụng --ntlmđể bậ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 vô hiệu hóa proxy HTTP NTLM. -p / - proxytunnel Khi một proxy HTTP được sử dụng ( -x / - proxy), tùy chọn này sẽ khiến các giao thức không phải HTTP cố gắng chạy đường hầm qua proxy thay vì chỉ sử dụng nó để thực hiện các hoạt động giống như HTTP. Phương pháp tiếp cận đường hầm được thực hiện với yêu cầu KẾT NỐI 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 đường hầm đế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 vô hiệu hóa đường hầm proxy. -P / - ftp-cổng

    (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 số: 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 tên máy chủ số IP chính xác tức là "my.host.domain" thành chỉ định máy - hãy 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, 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... Tắt 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, curlrc tập tin cấu hình sẽ không được đọc và sử dụng. Xem -K / - cấu hìnhđể 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 một lệnh tùy ý đến máy chủ FTP từ xa. Các lệnh trích dẫn được gửi TRƯỚC khi quá trình chuyển diễn ra (chính xác ngay sau lệnh PWD ban đầu). Để thực hiện các lệnh sau khi chuyển thành công, hãy đặt trước chúng bằng dấu gạch ngang "-". Để gửi lệnh sau khi libcurl đã thay đổi thư mục làm việc, ngay trước (các) lệnh chuyển, hãy đặt tiền tố lệnh bằng "+". 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 cho một trong các lệnh, toàn bộ hoạt động sẽ bị hủy bỏ. Bạn phải gửi các lệnh FTP chính xác về mặt cú pháp như RFC959 định nghĩa.

    Tùy chọn này có thể được sử dụng nhiều lần. --random-file (HTTPS) Chỉ định tên đường dẫn đến tệp chứa những gì sẽ được coi là dữ liệu ngẫu nhiên. Dữ liệu được sử dụng để khởi 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 (HTTP / FTP) Truy xuất dải 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. 0-499 chỉ định 500 byte đầu tiên 500-999 chỉ định 500 byte thứ hai -500 chỉ định 500 byte cuối cùng 9500- chỉ định các byte từ độ lệch 9500 và chuyển tiếp 0-0,-1 chỉ định byte đầu tiên và byte cuối cùng (*) (H) 500-700,600-799 chỉ định 300 byte từ khoảng cách 500 (H) 100-199,500-599 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ủ trả lời bằng phản hồi nhiều phần!

    Bạn cũng nên biết rằng nhiều máy chủ HTTP / 1.1 không bật tính năng này, vì vậy khi bạn cố gắng lấy một dải ô, 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 với một trong các số bị bỏ qua). Nó phụ thuộc vào SIZE lệnh không phải RFC.

    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ẽ được sử dụng. -R / - thời gian từ xa Khi được sử dụng, điều này sẽ làm cho libcurl cố gắng tìm ra dấu thời gian của tệp từ xa và nếu có sẵn, hãy làm cho tệp cục bộ nhận 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 Nếu lỗi tạm thời được trả lại khi curl cố gắng thực hiện chuyển, nó sẽ thử lại số lần này trước khi từ bỏ. Đặt số thành 0 làm cho curl không phải thử lại (đó là mặc định). Lỗi tạm thời có nghĩa là: hết thời gian chờ, mã phản hồi FTP 5xx hoặc mã phản hồi HTTP 5xx.

    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, thời gian chờ sẽ tăng gấp đôi 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 --retry-delay bạn vô hiệu hóa thuật toán dự phòng theo cấp số nhân này. Xem thêm --retry-max-timeđể giới hạn tổng thời gian được 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. --retry-delay Đặt curl sleep khoảng thời gian này giữa mỗi lần thử lại khi quá trình chuyển không thành công với 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 thành 0 sẽ làm cho curl sử dụng thời gian chờ mặc định. (Đã 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. --retry-max-time Bộ hẹn giờ thử lại được đặt lại trước lần 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ộ đếm thời gian chưa đạt đến giới hạn đã cho này. Lưu ý rằng nếu bộ đếm thời gian chưa đạt đến giới hạn, 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 / - chế độ im lặng Im lặng. Không hiển thị đồng hồ đo tiến trình hoặc thông báo lỗi. Làm cho Curl 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 vô hiệu hóa chế độ im lặng. -S / - hiển thị lỗi Khi được sử dụng với -s nó làm cho curl hiển thị thông báo lỗi nếu nó không thành cô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 vô hiệu hóa lỗi hiển thị. - tất 4 Sử dụng proxy SOCKS4 được chỉ định. Nếu số cổng không được chỉ định, 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, tùy chọn cuối cùng sẽ được sử dụng. - tất5 Sử dụng proxy SOCKS5 được chỉ định. Nếu số cổng không được chỉ định, nó được giả định là ở cổng 1080. (Đã thêm trong 7.11.1)

    Tùy chọn này ghi đè bất kỳ việc sử dụng nào trước đây 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, tùy chọn cuối cùng sẽ được sử dụng. (Tùy chọn này trước đây đã bị ghi sai tài liệu và được sử dụng như - tất mà không có số được thêm vào.) --Stderr Thay vào đó, hãy chuyển hướng tất cả ghi vào stderr đến tệp được chỉ định. Nếu tên tệp là "-" đơn giản, nó được viết thành stdout. Tùy chọn này không có ích 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, tùy chọn cuối cùng sẽ được sử dụng. --tcp-gật gù Bật tùy chọn TCP_NODELAY. Xem (3) trang người đàn ông để 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 cho 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.

    NEW_ENV = Đặt một biến môi trường. -T / - tải lên-tệp Thao tác này 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ẽ nối 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 với 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ử dụng. Điều đó rất có thể sẽ khiến hoạt động tải lên không thành công. Nếu điều này được sử dụng trên (các) máy chủ http, 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 URL -T + chỉ định nội dung sẽ tải lên và ở đâu. curl cũng hỗ trợ "globbing" của đối số -T, nghĩa là bạn có thể tải nhiều tệp lên một URL duy nhất bằng cách sử dụng cùng một kiểu URL globbing được hỗ trợ trong URL, như sau:

    CÁC TẬP TIN

    ~ / .curlrc Tệp cấu hình mặc định, xem -K / - cấu hìnhđể 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 các tên máy chủ lưu trữ không được thông qua bất kỳ proxy nào. Nếu chỉ được đặt thành dấu hoa thị "*", nó sẽ khớp với tất cả các máy chủ.

    XUẤT MÃ

    Tồn tại một loạt các mã lỗi khác nhau và các 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, các mã thoát là: 1 Giao thức không được hỗ trợ. Việc xây dựng curl này không có hỗ trợ cho 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 không đúng định dạng. Phần người dùng của cú pháp URL không đúng. 5 Không thể giải quyết proxy. Không thể giải quyết máy chủ proxy đã cho. 6 Không thể giải quyết máy chủ. Máy chủ từ xa đã cho không được giải quyết. 7 Không kết nối được với máy chủ. 8 phản hồi máy chủ lạ FTP. Máy chủ đã gửi dữ liệu không thể phân tích cú pháp. 9 Từ chối truy cập FTP. 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 thành 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áy chủ không chấp nhận một hoặc cả hai. 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 FTP trả lời lạ của USER. 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 của USER. 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 đến yêu cầu PASV. 14 Định dạng FTP 227 kỳ lạ. Curl không thể phân tích cú pháp dòng 227 mà máy chủ đã gửi. 15 FTP không thể nhận được máy chủ. Không thể giải quyết IP máy chủ mà chúng tôi nhận đượ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ủ lưu trữ mà chúng tôi nhận được trong dòng 227. 17 FTP không thể đặt hệ nhị phân. Không thể thay đổi phương thức truyền sang hệ nhị phân. 18 Tập tin một phần. Chỉ một phần của tệp đã được chuyển. 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 được máy chủ báo cáo là không hợp lệ. 21 Lỗi trích dẫn FTP. Lệnh trích dẫn trả về lỗi từ máy chủ. 22 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 là 400 trở lên. Mã trả lại này chỉ xuất hiện nếu -f / - thất bại Được sử dụng. 23 Lỗi ghi. Curl không thể ghi dữ liệu vào hệ thống tệp cục bộ hoặc hệ thống tệp tương tự. 24 Người dùng không đúng định dạng. Tên người dùng được chỉ định sai. 25 FTP không thể "t tệp STOR. Máy chủ đã từ chối hoạt động STOR, được sử dụng để tải lên FTP. 26 Lỗi đọc. Các vấn đề đọc khác nhau. 27 Hết bộ nhớ. Yêu cầu cấp phát bộ nhớ không thành công. 28 Thời gian chờ hoạt động. Đã đạt đến khoảng thời gian chờ được chỉ định theo các điều kiện. 29 FTP không thể đặt ASCII. Máy chủ trả về một câu trả lời không xác định. 30 FTP PORT không thành công. Lệnh PORT không thành công. Không phải tất cả các máy chủ FTP đều hỗ trợ lệnh PORT, hãy thử thực hiện chuyển bằng PASV thay thế! 31 FTP cann "t sử dụng REST. Lệnh REST không thành công. Lệnh này được sử dụng để truyền FTP được tiếp tục. 32 FTP không thể sử dụng SIZE. Lệnh SIZE không thành công. Lệnh này là phần mở rộng của lỗi phạm vi HTTP RFC 959.33 HTTP thông số FTP ban đầu. Phạm vi "lệnh" không hoạt động ". 34 Lỗi bài đăng HTTP. Lỗi tạo sau yêu cầu nội bộ. 35 Lỗi kết nối SSL. Bắt tay SSL không thành công. 36 Tiếp tục tải xuống FTP không hợp lệ. Không thể tiếp tục quá trình tải xuống bị hủy bỏ trước đó. 37 FILE không thể đọc tệp. Không mở được tệp. Quyền hạn? 38 LDAP không thể ràng buộc. Thao tác liên kết LDAP không thành công. 39 Tìm kiếm LDAP không thành công. 40 Không tìm thấy thư viện. Thư viện LDAP không được tìm thấy. 41 Không tìm thấy chức năng. Không tìm thấy chức năng LDAP bắt buộc. 42 Bị hủy bỏ bởi cuộc gọi lại. Một ứng dụng yêu cầu curl hủy bỏ hoạt động. 43 Lỗi nội bộ. Một hàm đã được gọi với một tham số không hợp lệ. 44 Lỗi nội bộ. Một hàm đã được gọi theo thứ tự xấu. 45 Lỗi giao diện. Không thể sử dụng giao diện gửi đi đã chỉ định. 46 Đã nhập mật khẩu không hợp lệ. Đã xảy ra lỗi khi nhập mật khẩu. 47 Quá nhiều chuyển hướng. Khi thực hiện theo các chuyển hướng, curl đạt mức tối đa. 48 Tùy chọn TELNET không xác định được chỉ định. 49 Tùy chọn telnet không đúng định dạng. 51 Chứng chỉ SSL ngang hàng từ xa không "ổn" 52 Máy chủ không trả lời bất kỳ điều gì, điều này được coi là lỗi. 53 Không tìm thấy công cụ mật mã SSL 54 Không thể đặt công cụ mật mã SSL làm mặc định 55 Không gửi được dữ liệu mạng 56 Không thành công trong nhận dữ liệu mạng 57 Đang sử dụng chia sẻ (lỗi nội bộ) 58 Sự cố với chứng chỉ cục bộ 59 Không thể sử dụng mật mã SSL được chỉ định 60 Sự cố với chứng chỉ CA (đường dẫn? quyền?) 61 Mã hóa truyền không được công nhận 62 URL LDAP không hợp lệ 63 Kích thước tệp tối đa vượt quá 64 Mức SSL FTP yêu cầu không thành công 65 Gửi dữ liệu yêu cầu tua lại không thành công 66 Không thể khởi chạy SSL Engine 67 Không chấp nhận người dùng, mật khẩu hoặc mật khẩu tương tự và không thể đăng nhập được 68 Không tìm thấy tệp trên máy chủ TFTP 69 Sự cố quyền trên máy chủ TFTP 70 Hết dung lượng ổ đĩa trên máy chủ TFTP 71 Hoạt động TFTP bất hợp pháp 72 ID truyền TFTP không xác định 73 Đã tồn tại tệp (TFTP) 74 Không có người dùng như vậy (TFTP) 75 Chuyển đổi ký tự không thành công 76 Yêu cầu các chức năng chuyển đổi ký tự không mong muốn XX Sẽ có nhiều mã lỗi hơn ở đây trong các bản phát hành trong tương lai. Những cái hiện có có nghĩa là không bao giờ thay đổi.

    Chúng ta thường phải tải xuống các tệp khác nhau từ Internet, ví dụ: tệp chương trình thực thi, tệp kịch bản, tệp 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 tất cả các 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 quy trình. Mặt khác, quản trị viên web phải kiểm tra khả năng truy cập trang web theo thời gian, kiểm tra tiêu đề được gửi và nhận, v.v.

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

    Trên thực tế, curl không chỉ là một tiện ích dòng lệnh cho Linux hoặc Windows. Nó là một tập hợp các thư viện triển khai khả năng phân trang URL và truyền tệp cơ bản. Thư viện hỗ trợ các giao thức sau: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, cũng như POP3, IMAP và SMTP. Nó rất tốt để mô phỏng các hành động của người dùng trên các trang và các hoạt động URL khác.

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

    Lệnh Curl

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

    liên kết $ curl options

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

    • -# - hiển thị một 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 tin;
    • -C- gửi cookie đến máy chủ từ một tệp;
    • -C- tiếp tục tải tệp từ điểm ngắt hoặc độ lệch được chỉ định;
    • -m- thời gian chờ đợi tối đa cho 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 đề do máy chủ trả về vào một tệp;
    • -e- đặt trường Referer-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 chuyể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 một 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ố lượng chuyển hướng tối đa sử dụng Vị trí;
    • -o- xuất nội dung của trang ra một tập tin;
    • -O- lưu nội dung vào một tệp với 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 tệp đã xóa;
    • -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 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 xuống tối đa;
    • -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 không phải là tất cả các tùy chọn curl linux, nhưng đây là tất cả các tùy chọn cơ bản mà bạn sẽ phải sử dụng.

    Làm thế nào để sử dụng uốn tóc?

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

    Nhiệm vụ phổ biến nhất là này. Nó rất dễ dàng để tải xuống tệp. Để làm điều này, chỉ cần chuyển tên tệp hoặc trang html cho tiện ích trong các tham số:

    curl https://raw.githubusercontent.com/curl/curl/master/README.md

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

    curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md

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

    curl -O https://raw.githubusercontent.com/curl/curl/master/README.md

    curl - # -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:

    curl -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 thay đổ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 đến giới hạn cần thiết để không làm mạng quá tải với tùy chọn -Y:

    curl --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ể 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:

    curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md

    Chuyển tập tin

    curl -T login.txt ftp://speedtest.tele2.net/upload/

    Hoặc hãy kiểm tra việc gửi tệp qua HTTP, vì điều này có một dịch vụ đặc biệt:

    curl -T ~ / login.txt http://posttestserver.com/post.php

    Đáp lại, tiện ích sẽ cho bạn biết bạn có thể tìm thấy tệp đã tải xuống ở đâu.

    Gửi dữ liệu POST

    Bạn không chỉ có thể gửi tệp mà còn có thể gửi 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 từ nhiều hình thức khác nhau. Sử dụng tùy chọn -d để gửi một yêu cầu như vậy. Để 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ờ rằng bạn đã gửi biểu mẫu. Có một tùy chọn -F cho điều này:

    cuộn tròn -F " [email được bảo vệ]; type = text / trơn "http://posttestserver.com/post.php

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

    Truyền và nhận cookie

    Cookie hay Cookie được các trang web sử dụng để lưu trữ một số thông tin nhất định về phía người dùng. Ví dụ, điều này có thể cần thiết để xác thực. Bạn có thể nhận và truyề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:

    curl -c cookie.txt http://posttestserver.com/post.php

    Sau đó, bạn có thể gửi lại cookie curl:

    curl -b cookie.txt http://posttestserver.com/post.php

    Truyền và phân tích cú pháp các 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ỉ những tiêu đề có thể được quan tâm. Để chỉ hiển thị chúng, có tùy chọn -I:

    curl -Tôi https: // trang web

    Và tùy chọn -H cho phép hoặc một số tùy chọn tới máy chủ, chẳng hạn, bạn có thể gửi tiêu đề If-Modified-Since để trang chỉ được trả lại nếu nó đã được thay đổi:

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

    Nếu máy chủ yêu cầu xác thực một trong những kiểu phổ biến, chẳng hạn như HTTP Basic hoặc FTP, thì curl có thể rất dễ dàng đối phó với tác vụ này. Để chỉ định dữ liệu 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:

    curl -u ftpuser: ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

    Xác thực trên máy chủ HTTP sẽ hoạt động 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 xuống tệp, thì điều này cũng rất dễ dàng. Chỉ cần đặt đị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 bạn cần tiện ích này và các tính năng chính của nó. Mặc dù chúng giống nhau, chúng rất khác nhau. Lệnh curl linux dành nhiều hơn cho việc 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 các trang web.

    16/02/2006 Jeff Felling

    Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web Bài viết này thảo luận về công cụ Curl miễn phí mà bạn có thể sử dụng để gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều

    Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web

    Bài viết này thảo luận về công cụ Curl miễn phí mà bạn có thể sử dụng để gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều hoạt động quản trị và bảo mật, chẳng hạn như truy xuất một trang Web để phân tích hoặc tải xuống bản vá bảo mật từ Web.

    Cài đặt Curl

    Curl được bao gồm trong nhiều bản phân phối Unix. Binaries và nguồn có sẵn cho hầu hết các hệ điều hành khác. Ngay cả các lập trình viên PHP mã nguồn mở cũng có thể sử dụng Curl để truy cập an toàn nội dung Web trực tiếp từ các tập lệnh PHP.

    Curl yêu cầu gói OpenSSL để sử dụng các trang web Lớp cổng bảo mật (SSL). Có hai phiên bản Curl, một phiên bản có SSL và phiên bản khác không có SSL. Tôi đề xuất cái đầu tiên vì SSL bảo vệ dữ liệu một cách đáng tin cậy.

    Trước khi sử dụng Curl với chức năng SSL, bạn cần tải xuống và cài đặt riêng gói OpenSSL từ web. Có thể tải xuống tệp nhị phân OpenSSL dành cho Windows từ trang web dự án GnuWin32 SourceForge tại. Có rất nhiều công cụ hữu ích khác được chuyển sang Windows trên trang web này.

    Tải xuống và cài đặt gói OpenSSL, sau đó sao chép hai tệp DLL vào thư mục system32:

    Sao chép "C: Program FilesGnuWin32 binlibeay32.dll"% windir% system32 copy "C: Program FilesGnuWin32 binlibssl32.dll"% windir% system32

    Sau đó, bạn có thể cài đặt Curl. Bạn có thể tìm thấy mã nhị phân Curl tương thích SSL dành cho Windows tại http://curl.haxx.se/latest.cgi?curl=win32-ssl-sspi... Phiên bản mới nhất, curl 7.15.0, có trong win32-ssl-sspi.zip, chứa curl.exe và tài liệu.

    Sau khi cài đặt Curl, bạn nên đảm bảo rằng nó hoạt động bằng cách nhập lệnh

    Curl http://isc.sans.org/ infocon.txt

    Nếu một từ chỉ màu xuất hiện trên màn hình (ví dụ: màu xanh lá cây), thì Curl đang hoạt động. Trong ví dụ đơn giản này, Curl lấy nội dung Infocon từ Trung tâm Bão tố Internet của Viện SANS. Màu xanh lá cây có nghĩa là Internet đang hoạt động bình thường và không có mối đe dọa lớn nào được phát hiện. Nếu, thay vì màu xanh lá cây, các từ màu vàng, cam hoặc đỏ xuất hiện trên màn hình, thì hãy hoãn bài viết này và truy cập trang web http://isc.sans.orgđể tìm hiểu về các tình trạng có nguy cơ cao trên Internet. Trong trường hợp xảy ra lỗi, cần kiểm tra lại tính đúng đắn của thiết lập Curl.

    Về bản chất, Curl tìm nạp một trang Web và sau đó xuất nguồn HTML của trang đó ra bảng điều khiển. Tuy nhiên, khả năng của tiện ích rộng hơn. Curl được tích hợp chức năng kiểm tra lỗi. Ví dụ, lệnh

    Cuộn tròn http: // noserverhere

    ném lỗi Curl: (6) Không thể giải quyết máy chủ: noserverhere; Không tìm thấy máy chủ. Mã lỗi có thể được sử dụng trong các tập lệnh để kiểm tra tính khả dụng của một trang Web hoặc khả năng đáp ứng của máy chủ Web. Ví dụ: nếu bạn sử dụng Curl để truy xuất một trang Web hàng ngày, chẳng hạn như thống kê trang Web hàng ngày, bạn có thể bổ sung tập lệnh bằng mã nguồn tìm kiếm mã lỗi. Nếu Curl đưa ra mã lỗi Curl: (7) không thể kết nối với máy chủ, thì bạn có thể ngay lập tức gửi cảnh báo hoặc gửi email.

    Trích xuất dữ liệu được mã hóa

    Một trong những điểm mạnh nhất của Curl là khả năng tương thích SSL. Các trang HTTPS được yêu cầu được truyền qua mạng ở dạng mã hóa và sau đó Curl hiển thị văn bản đã khôi phục. Ngoài ra, Curl kiểm tra các chứng chỉ - ngày hết hạn của chứng chỉ, tên máy chủ khớp với tên máy chủ trong chứng chỉ và mức độ tin cậy của chứng chỉ gốc - và cảnh báo nếu chứng chỉ không hợp lệ. Tham số -cacert cho phép bạn chỉ định một tệp chứng chỉ cụ thể. Kiểm tra chứng chỉ bị hủy bằng cách sử dụng tùy chọn -k. Một cách tiếp cận khác là sử dụng tham số -insecure.

    Không chỉ cho WWW

    Khả năng của Curl vượt xa khả năng truyền tệp đơn giản qua Internet. Curl có thể được sử dụng để liệt kê nhanh các thư mục của một trang FTP:

    Curl ftp: // myftpsite

    Để xem các thư mục con của trang web, hãy nhập lệnh

    Curl ftp: // myftpsite / subir /

    Để tải xuống tệp từ mạng, bạn chỉ cần chỉ định tên tệp trong URL. Ví dụ sau tải một tệp có tên readme.txt trực tiếp từ dòng lệnh và hiển thị tệp đó trên màn hình:

    Curl ftp://ftp.microsoft.com/ deskapps / games / readme.txt

    Việc chuẩn bị một tập lệnh Curl để nhập các tệp FTP thường dễ dàng hơn là sử dụng lệnh FTP một cách tương tác.

    Theo mặc định, dữ liệu được xuất trực tiếp đến bảng điều khiển, nhưng nó có thể được chuyển hướng đến một tệp bằng cách sử dụng các tùy chọn -o và -O. Để lấy trang và lưu vào đĩa, hãy sử dụng tham số -o. Tùy chọn -O lưu trang kết quả vào một tệp cục bộ và Curl truy xuất tên của tài liệu từ xa. Nếu tên tệp không được chỉ định trong URL, thì thao tác này sẽ không thành công. Nếu bạn sử dụng Curl để gửi yêu cầu đến một trang Web không có tên tệp, nhưng muốn lưu kết quả vào một tệp, bạn có thể chỉ định tên tệp trên dòng lệnh, ví dụ:

    Xác thực

    Curl cung cấp các phương pháp xác thực Cơ bản, Thông báo và Tích hợp. Trên hầu hết các trang web, các trang có xác thực dựa trên biểu mẫu có thể được truy cập bằng cách sử dụng các chức năng gửi của Curl, như được hiển thị bên dưới. Điều này có nghĩa là bạn có thể gửi dữ liệu biểu mẫu, chẳng hạn như tên người dùng và mật khẩu, đến một trang Web từ xa nhắc bạn về thông tin trên một trang Web. Bạn có thể sử dụng tham số -u để chuyển tiếp thông tin đăng nhập hoặc dán chúng vào URL, cách này thường được thực hiện trong FTP, ví dụ:

    Curl ftp: // tên người dùng: [email được bảo vệ]

    Curl có thể được sử dụng để chuyển các kỹ thuật FTP mượn sang HTTP, như trong ví dụ sau:

    Curl http: // tên người dùng: password @ myhtmlsite / default.htm

    Curl cũng cung cấp quyền truy cập proxy vào các trang Web. Do đó, Curl có thể được định cấu hình để sử dụng máy chủ proxy cho xác thực Cơ bản, Thông báo và NTLM.

    Đọc tài liệu

    Rất khó để trình bày tất cả các chức năng của Curl trong một bài viết, bao gồm tải tệp lên máy chủ (-T) và chỉ xem thông tin trong tiêu đề HTTP (-I) và xem tất cả dữ liệu ở chế độ tiết (-V) và đầu ra ẩn (-s). Tôi khuyên bạn nên xem xét kỹ hơn các chức năng Curl trong hướng dẫn được đăng tại http://curl.haxx.se/docs .

    Ví dụ về cuộn

    Bây giờ bạn đã quen với những điều cơ bản về Curl, hãy xem một ví dụ đơn giản về việc trích xuất dữ liệu từ một trang Web với đầu vào cho trước. Hãy xây dựng một công cụ Whois đơn giản thể hiện sự đơn giản và dễ sử dụng của Curl cũng như cách gửi dữ liệu đến một trang Web bằng cách sử dụng tùy chọn -d. Trong ví dụ này, Curl gửi một địa chỉ IP đến trang web Arin Whois và sau đó lấy kết quả từ trang web đó. Whois tìm kiếm thông tin về chủ sở hữu của một địa chỉ IP.

    Điều quan trọng là phải khám phá trang web trước khi bạn bắt đầu, vì mã nguồn của mỗi trang web có đặc điểm riêng và Curl không phải lúc nào cũng hoạt động theo cùng một cách với tất cả các trang web. Một chuyến thăm sơ bộ đến trang web cho phép bạn thu thập các thông tin cần thiết để Curl làm việc. Trong ví dụ này, tôi đã sử dụng trình duyệt để truy cập trang web http://www.arin.net/whois/ và thu hút sự chú ý đến thực tế là trang web có một trường nhập dữ liệu duy nhất trong đó khách truy cập chỉ ra địa chỉ IP mà họ quan tâm. Bạn muốn lấy thông tin chi tiết của trường này, là một phần của biểu mẫu Web. Ví dụ này sử dụng tập lệnh formfind.pl Perl ( http://cool.haxx.se/cvs.cgi/curl/perl/contrib/ formfind? rev = HEAD & content-type = text / vnd.viewcvs-markup). Tập lệnh Formfind.pl chuyển đổi dữ liệu biểu mẫu thành đầu ra có thể sử dụng và giúp bạn dễ dàng tìm kiếm dữ liệu trong HTML theo cách thủ công. Tất nhiên, Perl phải được triển khai trên máy tính để chạy Formfind. Một gói Win32 Perl tốt có thể được đặt hàng từ trang web ActiveState ActivePerl tại http://www.activestate.com .

    Hãy xem xét một ví dụ chi tiết hơn. Đầu tiên, chúng ta chuyển đến một trang Web có chứa một biểu mẫu yêu cầu thông tin:

    Curl -o whoisOutputFile http://www.arin.net/whois/

    Lệnh này trích xuất trang Whois từ http://www.arin.net và lưu nó vào tệp văn bản whoisOutputFile, chứa nguồn HTML mà trình duyệt phát khi trang web được truy cập.

    Sau đó, bạn cần tìm và chọn dữ liệu biểu mẫu:

    ./formfind.pl

    Kết quả đầu ra của Formfind các biến dạng và các giá trị có thể có của chúng. Trong ví dụ này, đầu ra khá đơn giản (xem. màn hình 1).

    Hãy chú ý đến dữ liệu của Biểu mẫu đầu vào có tên là queryinput. Đây là trường văn bản mà Curl sẽ gửi địa chỉ IP đã tìm kiếm. Địa chỉ IP cụ thể không quan trọng - trong ví dụ này, Microsoft được sử dụng. Sử dụng tham số -d, địa chỉ IP đã tìm kiếm được chuyển tiếp đến trường queryinput:

    Curl -d "queryinput = 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl

    Lệnh Curl, với tùy chọn -d, truy xuất dữ liệu trong biểu mẫu, trong trường hợp này là queryinput, là địa chỉ IP cần tìm kiếm. Điều này thay đổi địa chỉ mục tiêu; biểu mẫu phải gửi dữ liệu đến một url mới, được trình bày bởi tập lệnh whois.pl. Bạn có thể thấy địa chỉ đích mới trong đầu ra của formfind trong Hình 1.

    Ví dụ này cũng truy xuất nguồn HTML của phản hồi Whois, nhưng nó bị ẩn bởi một nhóm thẻ HTML. Theo mặc định, thông báo trạng thái Curl hiển thị kích thước tài liệu, tỷ lệ phần trăm hoàn thành và tốc độ truyền. Đầu ra có thể được làm sạch một chút và lọc theo tên của tổ chức sở hữu địa chỉ IP. Trạng thái cuộn tóc có thể bị vô hiệu hóa bằng cách sử dụng tùy chọn -s. Lệnh sẽ được chạy qua grep để chỉ lấy OrgName:

    Curl -s -d "queryinput = 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl | grep OrgName

    Trong ví dụ này, kết quả hiển thị OrgName là Microsoft Corp.

    @echo off curl -k -s -d "queryinput =% 1" http://ws.arin.net/cgibin/ whois.pl | grep OrgName