Linuxカールとは何ですか

青灯夜游
リリース: 2023-04-20 17:05:46
オリジナル
3376 人が閲覧しました

Linux では、curl はサーバーとの間でデータを転送するための非常に実用的なツールです。これは、URL ルールを使用してコマンド ラインで動作するファイル転送ツールであり、ファイルのアップロードとダウンロードをサポートしています。総合的な伝達ツール。 Curl は、プロキシ アクセス、ユーザー認証、ftp アップロードとダウンロード、HTTP POST、SSL 接続、Cookie サポート、ブレークポイント再開などの非常に便利な機能を多数提供します。

Linuxカールとは何ですか

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux では、curl は URL ルールを使用してコマンド ラインで動作するファイル転送ツールであり、非常に強力な http コマンド ライン ツールと言えます。ファイルのアップロードとダウンロードをサポートし、総合的な送信ツールですが、伝統に従って URL をダウンロード ツールと呼ぶのが慣例です。

curl は、サーバーとの間でデータを送受信するための非常に実用的なツールです。サポートされているプロトコルには、(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、 RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、TELNET、TFTP など)、curl はユーザーの介入なしで作業を完了できるように設計されており、プロキシ アクセス、ユーザー認証、FTP アップロードとダウンロード、HTTP などの非常に便利な機能を多数提供します。 POST、SSL接続、Cookieサポート、ブレークポイント再開...

1. 最も一般的に使用されるcurlコマンド

1. GETリクエストの送信

#
curl URL
ログイン後にコピー
curl URL?a=1&b=nihao
ログイン後にコピー

2. POST リクエストを送信

curl -X POST -d 'a=1&b=nihao' URL
ログイン後にコピー

3. json 形式リクエストを送信:

curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL
ログイン後にコピー
curl -H "Content-Type: application/json" -X POST -d @test.json URL
ログイン後にコピー

このうち、-H はヘッダーを表し、-X はリクエストの種類 (POST/GET/HEAD/DELETE/PUT/PATCH) を指定し、- d は送信されるデータを表します。これらが最も一般的に使用されます。

すべてのcurlコマンドを表示: mancurlまたはcurl -h
リクエストヘッダー: H,A,e
レスポンスヘッダー: I,i,D
Cookie: b,c,j
転送:F(POST),G(GET),T(PUT),X
出力: o,O,w
再開可能なアップロード: r
デバッグ: v,--trace,--trace-ascii, --trace-time

2.curl コマンド構文とcurl コマンド パラメーターの詳細説明

1.curl コマンド構文

curl [options] [URL...]
ログイン後にコピー

#2.curl コマンド パラメータの詳細説明

Linux のcurl 関数は非常に強力であるため、多くのパラメータが用意されています。コマンドのパラメータ 以下の表は aiezu.com が厳選したパラメータの一部です. より多くのパラメータについては、「mancurl」コマンドを実行して表示してください。

#パラメータ グループパラメータ説明urlurl クロールする 1 つ以上の URL; Please-H "name: value"(HTTP)http ヘッダー (http リクエスト ヘッダー) を追加します;-H "name:"(HTTP)http ヘッダー (http リクエスト ヘッダー) を削除します;-A "string"(HTTP) HTTP リクエスト ヘッダー「User-Agent」を設定します。サーバーは、「User-Agent」を使用して、クライアントが使用するブラウザ名とオペレーティング システムの種類を決定できます。このパラメーターを偽造すると、サーバーが次のことを行う可能性があります。間違った判断をしてください。 -e -e "aiezu.com" は "-H "Referer と同等です: www.qq .com""; ring は --head HTTP サービスに使用する場合、ページの http ヘッダーを取得します。 -i --include-D --dump-header cookie --cookie name=data-c filename --cookie-jar ファイル名 指定されたパラメーター値が "-" の場合、これは「コンソールなど」の標準出力に送られます; -j --junk-session-cookies はブラウザを再起動するのと同じです; proxy -x [プロトコル: //[user:pwd@]host[:port] プロトコルのデフォルトは http_proxy、その他の可能な値には以下が含まれます:-p --proxytunnel--socks4 --socks4a SOCKS4A プロキシを使用する; --proxy-anyauth --proxy-basic --anyauth##-U --proxy-user データ送信 -d "文字列"--data-ascii "string"
--data-binary "string"
--data-urlencode "string"
(HTTP) HTTP プロトコルに NTLM 認証方法を使用します。 通常、NTLM を使用する IIS Web サイトに使用されます。(HTTP) は、HTTP プロトコルに使用される HTTP ダイジェスト認証暗号化を使用します; パスワードがクリア テキストで送信されないようにするには、「-u/--user」オプションを使用します; (HTTP) は、HTTP プロトコルに GSS-Negotiate 認証方式を使用します。 その主な目的は、kerberos5 認証のサポートを提供することです。(HTTP) は、適切な認証方法と最も安全な方法を自動的に選択するようにcurlに指示します; -u user:password ユーザー名とパスワードによる認証を使用します。このパラメータは、「-n」、「--netrc」、および「--netrc-optional」オプションをオーバーライドします。ユーザー名のみを指定すると、curl はパスワードの入力を求めます; このパラメータは、http ヘッダー「Authorization:」を設定するのと同等です。(SSL)「」に証明書ファイルと証明書パスワードを指定します。 PEM" 形式;(SSL) は、提供された証明書のタイプ (PEM、DER、ENG など) をcurl に伝えます。 ;##--disable-epsv(FTP) PASV (パッシブ モード) の場合に EPSV を使用しないようにcurlに指示します;--disable-eprt(FTP) は、curl にアクティブ モードで EPRT と LPRT を無効にするよう指示します; 速度制限--limit - rate curl で使用される最大帯域幅を制限します。単位が指定されていない場合、デフォルトの単位は「バイト/秒」ですが、単位を「K」、「M」として指定することもできます。 "、"G" などの単位: "--limit-rate 1m" は、最大帯域幅を "1m バイト/秒" に制限します。-yspeed-time 期間中にダウンロードが 1 秒あたりの速度制限バイト数よりも遅い場合、ダウンロードは中止されます。speed-time が使用される場合、デフォルトの Speed- -Y で設定しない限り、制限は 1 になります。-Y #--keepalive-time キープアライブ時間を設定します--no-keepaliveキープアライブ機能をオフにします; --no-buffer出力ストリームのバッファリングを無効にする;--buffer出力ストリーム バッファリングを有効にします。-L(HTTP/HTTPS) は http 応答ヘッダー「Location:」に続き、ページに誘導します。ジャンプ後; --location-trusted( HTTP/HTTPS) 「--location」と同じですが、ジャンプ ジャンプ前のユーザー名とパスワードは後で送信されます; --compressed(HTTP)リクエストは、返されたコンテンツを圧縮するために圧縮アルゴリズムを使用します。curl は gzip 圧縮をサポートします。 Decompress;--connect-timeout #最大接続タイムアウトを指定します。秒;-m 秒curl 操作全体の最大時間を秒単位で制限します。 -sサイレント モード。進行状況メーターやエラー メッセージを表示しない;#-# --progress-bar#Error Option --retry-lay <秒> --retry- max-time -- show-errorQuiet モードでエラー メッセージを表示;##--stderr エラー メッセージの保存ファイル;Output-o file --output file ワイルドカードを使用して複数の URL を取得する場合、「#」の後に「数値シーケンス番号」を使用すると、curl は次のように対応するキーワードに自動的に置き換えます。 返された内容を現在のディレクトリに出力します。 URL 内のファイルと同じ名前のファイル (ディレクトリを除く); --create-dirs 「-o」パラメータとともに使用すると、必要なローカル ディレクトリ階層を作成します-w#操作が完了したら、指定されたコンテンツをファイルの末尾に追加します。情報を返します。追加される内容は、ファイル "@filename" から取得した文字列 "string" にすることができ、標準入力から "@-" を取得します 形式パラメーターでは、「\n」、「\r」、「\t」、およびその他のエスケープ文字を使用できます。 すべての送受信データ (説明情報も含む) をファイルにダンプします; 出力を標準出力に送信するには、ファイル名として「 -」を使用します。 --trace-ascii file 出力を標準出力に送信するには、ファイル名として「-」を使用します。 このオプションは、以前に使用した -v、--verbose、--trace-ascii オプションを上書きします; ##-K構成ファイルからパラメータを読み取ります、参照: http://curl.haxx .se /docs/-vデバッグ中に使用される詳細情報を表示します; Help-M完全なヘルプ マニュアルを表示します; -hLinuxカールの使用法ヘルプ;

curl -h:

のパラメータの完全な説明
以下の複数のワイルドカード メソッド:
1. http://{www,ftp,mail}.aiezu.com;
2. http:// aiezu.com/images/[001-999].jpg;
3. http://aiezu.com/images/[1-999].html;
4. ftp:// aiezu.com/ file[a-z].txt
Request
header
--header "name: value "
--header "name :"
--user-agent "string"

「-H」、「--header オプション」を使用してこのオプションを設定することもできます;
--referer
##(HTTP) アクセス時にソース ページを設定し、どのページからこのページに入るかを http サービスに指示します;

header

-I

でなければなりません(HTTP) のみ HTTP ヘッダーを出力し、コンテンツ (HTTP/FTP/FILE) を取得しません。
(例:curl -I http://aiezu.com)
FTP/FILE に使用する場合、ファイル サイズと最終変更が取得される時刻;
(例:curl -I file://test.txt)


(HTTP) HTTP ヘッダーを出力し、コンテンツを返します;

(HTTP) ダンプファイルを指定する http 応答ヘッダー;
-b name=data

( HTTP) Cookie の送信 データは HTTP サーバーに送信されます。データ形式は次のとおりです: "NAME1=VALUE1; NAME2=VALUE2";
行に「=」がない場合、パラメーターの値は次のようになります。 Cookie ファイル名とみなされます;

この Cookie データは、サーバーの http 応答ヘッダー「Set-Cookie:」行によって送信できます;



(HTTP) 操作の完了後、サーバーから返された Cookie を指定されたファイルに保存します;


(HTTP) は、curl に次のように指示します。すべての「セッション Cookie」を放棄します;

-x host:port --proxy [protocol:// [user:pwd@]host[:port]


HTTP プロキシ アクセスを使用します。ポートが指定されていない場合、デフォルトでポート 8080 が使用されます。
http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
例:
- -proxy 8.8.8.8:8080;
-x "http_proxy://aiezu:123@aiezu.com:80"


「-x」パラメータのプロキシを、ftp などの非 HTTP プロトコルをプロキシするチャネルとして使用します;
--socks5

SOCKS4 プロキシを使用する;
SOCKS5 プロキシを使用する;
このパラメータは「-x」パラメータをオーバーライドします;

--proxy-diges
--proxy-negotiate
--proxy-ntlm

http プロキシ認証方法、参考:
--basic
- -diges
--negotiate
--ntlm

プロキシのユーザー名とパスワードを設定します;
-G
--get

Ifこのパラメータが使用されると、「-d/」、「--data」、および「--data-binary」パラメータで設定されたデータが URL に添付され、GET モードでリクエストされます。
#-d @file
--データ "文字列"(HTTP) HTTP POST を使用して "key/値ペア" データ、ブラウザー フォーム属性 (method="POST"、enctype="application/x-www-form-urlencoded") に相当します
-d, --data: HTTP モード POST データ;
- -data-ascii: HTTP POST アスキーデータ;
--data-binary: HTTP POST バイナリデータ;
--data-urlencode: HTTP POST データ (urlencode);
「@」で始まるデータの場合の後にファイルが続くと、投稿ファイル内のコンテンツが投稿されます;
-F name=@file
-F name= -F name =content
--form name=content
(HTTP) HTTP POST メソッドを使用して、「フォーム フィールド」に似た複数のタイプのデータを送信します。これは、ブラウザのフォーム プロパティを同時に (method="POST"、enctype="multipart/form-data")、このパラメータを使用してバイナリ ファイルをアップロードできます。

フィールドの内容が「@」で始まる場合、残りの部分はファイル名である必要があり、curl は次のようにファイルをアップロードします。
curl -F "pic=@pic.jpg" http :/ /aiezu.com;
curl -F "page=@a.html;type=text/html" http://aiezu.com
curl -F "page=@/tmp/a;ファイル名=a .txt" http://aiezu.com

フィールドの内容が「<」で始まる場合、残りの部分はファイル名である必要があり、curl はファイルからこのフィールドの値を取得します。例:curl -F "text=
--form-string (HTTP ) は「--form」に似ていますが、「@」と「<」には特別な意味はありません;
-T file
--upload- file file
「put」を通じてファイルをリモート URL に転送します;

オプション パラメータには文字「-」のみが使用され、ファイルの内容は標準入力を通じて読み取られます;
例:
cat test.txt |curl "http://aiezu.com/a.php" -T -
curl "http://aiezu.com/a.php" -T - < test.txt

このワイルドカードはパラメータにも使用できます:
curl -T "{file1,file2}" http://aiezu.com
curl -T "img[1-1000] ].png" http://aiezu.com
ブレークポイント
再開
-C
-- continue-at < offset>
ブレークポイント 転送を続行し、ファイル ヘッダーの指定された位置からダウンロード/アップロードを続行します;
offset は転送を再開する開始位置です。オフセット値が "-" の場合、curl は自動的に識別しますファイル内の開始位置を指定して送信を開始します;
-r
--range
(HTTP/FTP/SFTP /FILE) コンテンツの指定された部分のみを転送します:
0 -499: 最初の 500 バイト;
-500: 最後の 500 バイト;
9500-: 最初の 9500 バイト;
0 -0、-1: 最初と最後の 1 バイト;
100-199,500-599: 2 つの 100 バイト;



認証
--basic (HTTP) は、デフォルトの認証方法である HTTP 基本認証 (HTTP プロトコル使用時) を使用するようにcurlに指示します。 --ntlm

--digest

--negotiate
# #--anyauth
- -user user :password
「NTLM」認証に「SSPI」によって開かれたcurl ライブラリを使用する場合は、ユーザー名なしで「-u:」オプションを使用できます。とパスワードを指定して、curl が認証に現在のログイン ユーザー名とパスワードを使用するように強制します。



Certificate

-E <証明書 [:パスワード]>
--cert <証明書 [:パスワード]>
--cert-type
デフォルトは「PEM」です;
--cacert (SSL) は、指定された CA 証明書ファイルが「PEM」形式である必要があることをcurlに伝えます;
--capath (SSL) は、指定されたディレクトリ内の CA 証明書が検証に使用されることをcurlに伝えます;
これらは証明書は「PEM」形式である必要があります。
--crlfile (HTTPS/FTPS) は、取り消されたリストを指定するための PEM 形式ファイルを提供します。証明書の数;
-k
--insecure
(SSL) このオプションを設定すると、証明書なしで安全でない SSL を使用した接続と転送が許可されます。
SSL
その他
--ciphers (SSL) は、SSL で使用される暗号化方式を指定します。 ; 例: "aes_256_sha_256";
--engine 暗号化操作用の OpenSSL 暗号化エンジンを設定します;
"curl --" を使用しますエンジン リスト "サポートされている暗号化エンジンのリストを表示します。
--random-file (SSL) は、ランダム データを含むファイル パス名を指定します。データは使用されます。 SSL 接続の場合、生成されるランダム シードは次のとおりです:
--egd-file (SSL) は、ランダム シード ジェネレータ EGD (エントロピー収集デーモン ソケット) 名前;
-1/--tlsv1
--tlsv1.0
--tlsv1.1
--tlsv1.2
-2/ --sslv2
-3/--sslv3
(SSL) TLS バージョン 2 を使用してリモート サーバーと通信します;
(SSL) TLS バージョン 1.0 を使用してリモート サーバーと通信しますリモート サーバー;
(SSL) リモート サーバーとの通信には TLS バージョン 1.1 を使用します;
(SSL) リモート サーバーとの通信には TLS バージョン 1.2 を使用します;
(SSL) 通信には SSL バージョン 2 を使用しますリモート サーバーとの通信;
(SSL) SSL バージョン 3 の使用 リモート サーバーとの通信;
秘密キー
公開キー
--key (SSL/SSH) 秘密キー ファイル名を 1 つ指定します。指定すると、自動的に次のファイルの使用が試行されます: "~/.ssh/id_rsa"、"~/.ssh/id_dsa"、 "./id_rsa'", "./id_dsa";
--key-type (SSL) は秘密鍵ファイルのタイプを指定します。サポート: DER、PEM、ENG、デフォルトは PEM;
--pass (SSL/SSH)秘密キーのパスワードを指定しますfile;
--pubkey (SSH) 指定されたファイルで提供された公開キーを使用します;
FTP -P
--ftp-port
(FTP) FTP アクティブ モードでは、サーバー接続を待機するアドレスを次のように設定します。
ネットワーク カード: eth1
IP: 8.8.8.8
ホスト名: aiezu.com
ポート番号を追加できます: eth1:20000-21000;
--crlf(FTP) アップロード時に、改行 (LF) を復帰と改行 (CRLF) に変換します。
--ftp- account [data](FTP)ftp アカウント情報;
-- ftp-method [method](FTP) オプションの値: multicwd /nocwd/singlecwd;
--ftp-pasv(FTP ) PASV (パッシブ)/EPSV モードを使用します;
--ftp-skip-pasv-ip(FTP) PASV を使用する場合、指定された IP をスキップします ;
--ftp-create-dirs(FTP) アップロード時にリモート ディレクトリを自動的に作成します;
-l
--list-only
(FTP) FTP ファイルのリストを表示します;
-B
--use-ascii
(FTP/LDAP) は、FTP および LDAP に Ascii 送信モードを使用します。これは、「」を使用するのと同等です。 FTP の type=A;" モード。
--speed-time < time>
このオプションは転送を制御するため、低速接続などには影響しません。これが懸念される場合は、--connect-timeout オプションを試してください。
--speed-limit ダウンロードがこの指定速度 (1 秒あたりのバイト数) よりも Speed-time 秒遅い場合、ダウンロードは中止されます。speed-time は -y で設定され、30 になります。設定されていない場合。
その他
オプション
-0/--http1.0 (HTTP) HTTP 1.0を使用するようにcurlを強制します。デフォルトの HTTP 1.1 を使用する代わりに;
--interface 指定されたネットワーク カード インターフェイスを使用してアクセスします;
curl --interface eth0 http://aiezu.com
curl --interface 10.0.0.101 http://aiezu.com
-X
--request < ;command>
(HTTP) は、サーバーとの通信に使用されるリクエスト メソッド (GET、PUT、POST、DELETE など) を指定します。デフォルトは GET;
--location
(httpレスポンスコードが3XXの場合 301ジャンプ、302ジャンプなど使用時)
--max-time 秒
--silent

進行状況バーを表示する;
-f
--fail
(HTTP) 接続が失敗した場合 (エラー 400 以上)、デフォルトのエラー ページは返されません、ただし、curl エラー コードが返されます。 "22";
## --retry
失敗した再試行回数;
再試行間隔;
最大再試行時間;


-S

返されたコンテンツをファイルに出力します。 curl "http://aiezu .com/ {a,b}.txt" -o "#1.txt";
として保存されます: "a.txt", "b.txt";
curl "http: //aiezu.com/{a,b}_[1-3].txt" -o "#1#2.txt";
は a1.txt、a2.txt、a3.txt として保存されます、b1.txt、b2.txt、b3.txt

ルールに従って保存ディレクトリを作成したい場合は、「--create-dirs」

「-」を指定する場合を参照してください。 「コンソールなど」の標準出力にダイレクトされます ;



-O
--remote-name

--write-out format
フォーマット パラメーターでは、%{ を使用できます。 variable_name} メソッドを使用して、%{content_type}、%{http_code}、% {local_ip}... などの応答情報に関連する変数を使用します。その他の変数については、「mancurl」を参照してください。


##Debug

--trace

記述情報を含むすべての送受信データをファイルにダンプします。読みやすいように ASCII 部分のみをダンプします。;
--trace-timeダンプ ファイルに時間を追加します情報;
--config
--verbose
--manual
--help
「任意の」認証方法を使用可能--基本/--use-ascii -d/--data --data-ascii データを ASCII 形式で投稿します--data-binary < ;data> ##-Digest デジタル認証を使用します -Disable-EPRT ##-Egd-File & LT; File & GT; --tcp- nolay #証明書ファイルの種類 (DER/PEM/ENG) (SSL)## --key-type - -pass "- -Engine List "for list ##- cacert&lt; file&gt;最大リクエスト時間を設定するローカル ディレクトリのディレクトリ階層を確立するローカル ディレクトリのディレクトリ階層構造を確立します アップロードとは、LF を CRLF に変換することですリモート ディレクトリが存在しない場合、リモート ディレクトリ # CWD --ftp-ssl-reqd -F/--form ;および []##-G/--get -help Help#-H/--header #- H/ - ヘッダー&lt; line&gt; -出力時のプロトコルヘッダー情報を含めるため、コンテンツレングスを無視してください-I/--head ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ドキュメント情報のみ表示-j/- -junk-session-cookies ##証明書を使用しない SSL サイトを許可する#-K/--config #-l/ - リストのみ-ローカルポート&lt; num&gt; m/ - max-time&lt;秒>ディレクトリの数読むダウンロードされるファイルの最大合計数を設定します #- M/ - マニュアル##- Netrc-Optional ## HTTP NTLM認証を使用##- N/ - NO-BUFFER## —— Proxy-Anyauth - Proxy-basic # Proxyでデジタル認証を使用-P/-FTP-PORT&LT;アドレス>; ##- R/ - リモートタイム以来;間隔時間を試してください送信トラブル時の最大リトライ時間を設定します エラー表示 指定されたホストとポートをプロキシするには、socks4 を使用しますsocks5 を使用して指定されたホストとポートをプロキシします##-t/--telnet-option 指定されたファイルをデバッグします#-トレースタイム# #プロキシのユーザー名とパスワードを設定する-V/--version -y/--speed を指定するコマンド-時間 。デフォルトは 30 ## 停止から停止までの伝送速度、速度時間 '秒 - 1/ - SSLV2(SSL)を使用したTLSV1 ## sslv3 SSLv3 (SSL) の使用-- 3p-quote サードパーティ転送のソース URL には -Q を使用します##--3p-url ##--3p-url --3p-user IP4-6/--ipv6 を使用する

3. Linux カール コマンドの終了コード

以下は、過酷な環境で表示される可能性がある、Linux カール コマンドのエラー コードとそれに対応するエラー メッセージです。

-a/--append
ASCII テキスト送信を使用する
## EPRT または LPRT の使用が禁止されています
-Disable-EPSV EPSV の使用が禁止されています
## はランダム データ (SSL) EGD ソケット パスを設定します
--key
秘密鍵ファイルの種類 (DER/PEM/ENG) (SSL)
--暗号 #--connect-timeout
--create -dirs
--crlf
--crlf
--ftp-create-dirs
--ftp-method [multicwd/nocwd/singlecwd ] を作成します。
- FTP-PASV ##-FTP-SKIP-PASV-IPを使用してFTPデータ送信を使用してFTP-SKIP-PASV-IPの使用を制御します#
#ヘルプ
#--krb4
転送速度を設定
--max-filesize
-P/-Proxytunnel http プロキシを使用する
## 选择メソッド
##- Proxy-NTLM
#- retry-max-time&lt; seconds&gt;
-S/-Show-error
-Socks4 & LT; Host [: Port] & gt;
--socks5
##--trace-ascii --trace と同様ですが、16 進数出力はありません
Spet URL
#- Proxy-User&lt; user [:password]&gt;
»Y/-Speed-Limit
##-Z/ -
like -Q サードパーティ転送のソース URL の場合
##19FTP は指定されたファイルをダウンロードまたはアクセスできませんでした。RETR (または同様の) コマンドが失敗しました。21FTP 見積もりエラー。引用コマンドがサーバーからエラーを返しました。22HTTP ページが取得されませんでした。要求された URL が見つからないか、HTTP エラー コード 400 以上の別のエラーが返されました。この戻りコードは、-f/--fail が使用された場合にのみ表示されます。23書き込みエラー。 Curl はローカル ファイル システムなどにデータを書き込むことができませんでした。25FTP は STOR ファイルを実行できませんでした。サーバーは、FTP アップロードに使用される STOR 操作を拒否しました。26読み取りエラー。さまざまな読み取りの問題。27メモリが不足しています。メモリ割り当てリクエストが失敗しました。28操作がタイムアウトしました。条件に従って、指定されたタイムアウト期間に達しました。30FTP ポートが失敗しました。 PORTコマンドが失敗しました。すべての FTP サーバーが PORT コマンドをサポートしているわけではありません。代わりに PASV を使用して転送を行ってみてください!31FTP は REST を使用できませんでした。 RESTコマンドが失敗しました。このコマンドは、FTP 転送の再開に使用されます。33HTTP 範囲エラー。範囲「コマンド」が機能しませんでした。34HTTP ポスト エラー。リクエスト後の内部生成エラー。#35SSL 接続エラー。 SSL ハンドシェイクに失敗しました。36FTP ダウンロードの再開が正しくありません。以前に中止されたダウンロードを続行できませんでした。37FILE ファイルを読み取れませんでした。ファイルを開けませんでした。権限?38LDAP をバインドできません。 LDAP バインド操作に失敗しました。39LDAP 検索に失敗しました。41関数が見つかりませんでした。 。必要な LDAP 関数が見つかりませんでした。#42コールバックにより中止されました。アプリケーションは、curl に操作を中止するように指示しました。43内部エラー。関数が不正なパラメータで呼び出されました。#45インターフェイス エラー。指定された送信インターフェイスは使用できませんでした。47リダイレクトが多すぎます。リダイレクトをたどるとき、curl は最大量に達します。48不明な TELNET オプションが指定されました。49不正な Telnet オプション。51ピアの SSL 証明書または SSH MD5 フィンガープリントが正常ではありませんでした。 52サーバーは何も応答しませんでした。ここではエラーとみなされます。53SSL 暗号化エンジンが見つかりません。54SSL 暗号化エンジンをデフォルトとして設定できません。55ネットワーク データの送信に失敗しました。56ネットワーク データの受信に失敗しました。58ローカル証明書に問題があります。59指定された SSL 暗号を使用できませんでした。60ピア証明書を認証できません既知の CA 証明書。61認識できない転送エンコーディング。62無効な LDAP URL。 #636465##66SSL の初期化に失敗しましたEngine.67ユーザー名、パスワードなどが受け入れられず、curl はログインに失敗しました。#68ファイルが TFTP サーバー上に見つかりません。69TFTP サーバーの権限に問題があります。70TFTP サーバーのディスク容量が不足しています。71不正な TFTP 操作です。72不明な TFTP 転送 ID。73ファイルはすでに存在します (TFTP)。74そのようなユーザー (TFTP) はありません。75文字変換に失敗しました。76文字変換関数が必要です。77SSL CA 証明書 (パス?アクセス権?) の読み取りに問題があります。 ).78URL で参照されているリソースは存在しません。79 SSH セッション中に原因不明のエラーが発生しました。80SSL 接続をシャットダウンできませんでした。82CRL ファイルをロードできませんでした。形式が見つからないか間違っています (7.19.0 で追加)。83発行者チェックに失敗しました (7.19.0 で追加)。 0).XX将来のリリースでは、さらに多くのエラー コードがここに表示される予定です。既存のものは決して変更されることはありません。

##4. 一般的な使用法

##1. ダウンロード (オプション:-o またはオプション:-O) # 1.1. ダウンロード ページ:

curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#-O の後ろの URL は特定のファイルに固有である必要があることに注意してください。そうでない場合は、キャプチャされます ダウンロードしていません

curl -O http://www.linux.com/dodo1.JPG


1.2: ループダウンロード
ダウンロードされた画像の前の部分の名前が次のようになっている場合があります。最後の尾椎には別の名前が付けられています。これにより、dodo1、dodo2、dodo3、dodo4、および dodo5

がすべて保存されます。 ## hello/dodo1.JPG 内のファイルは、ダウンロード後に hello_dodo1.JPG になり、他のファイルも同様に、ファイルの上書きが効果的に回避されます。

curl -o #1_#2.JPG http://www.linux. com/{hello,bb}/dodo[1-5].JPG

ダウンロードした hello と bb のファイル名はすべて dodo1、dodo2、dodo3、dodo4、dodo5 であるためです。したがって、2 回目のダウンロードは最初のダウンロードを上書きするため、ファイルの名前を変更する必要があります。

カール -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG


1.4: チャンクでダウンロード (オプション: -r)
curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG

curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1。 JPG

curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
cat dodo1_part* > dodo1.JPG #この方法で dodo1.JPG の内容を表示できます

1.5: ftp 経由でファイルをダウンロードする (オプション: -u)
curl は ftp 経由でファイルをダウンロードできます。curl は ftp からダウンロードするための 2 つの構文を提供します。
curl -O -u ユーザー名: パスワード ftp :/ /www.linux.com/dodo1.JPG
curl -O ftp://username:password@www.linux.com/dodo1.JPG

1.6: ダウンロード、進行状況バーを表示 (オプション: - #) または進行状況バーを表示しません (オプション: -s)

curl -# -O http://www.linux.com/dodo1.JPG
curl -s -O http://www 。 linux.com/dodo1.JPG

1.7. ダウンロード、ブレークポイントで再開 (-C )

ブレークポイントで再開し、ファイル ヘッダーの指定された位置からダウンロード/アップロードを続行します。オフセットはレジューム送信の開始位置 オフセット値が「-」の場合、curl はファイルから開始位置を自動的に特定して送信を開始します;

curl -# -o centos6.8.iso -C - http://ミラー。aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
curl -C -O http://www.linux.com/dodo1.JPG


2. ファイルのアップロード (オプション: -T)

curl -T dodo1.JPG -u ユーザー名: パスワード ftp://www.linux.com/img / 3. 偽造されたソース ページ | 偽のリファラー | ホット リンク (オプション: -e)

多くのサーバーは http のリファラーをチェックします。にアクセスしてアクセスを制御します。例: 最初にホームページにアクセスし、次にホームページ上の電子メール ページにアクセスします。ここでの電子メール アドレスのリファラー アドレスは、ホームページへのアクセスに成功した後のページ アドレスです。サーバーが電子メール ページのリファラー アドレスがホームページのアドレスではなく、それが判断されます。これは盗まれた接続です。 #これにより、サーバーは www.linux.com からのリンクをクリックしたと認識します。curl -e "www.linux.com" http://mail.linux. com #Aiezu に Baidu 出身であることを伝えてください Karl -e http://baidu.com http://aiezu.com



4、 偽のプロキシ デバイス (模倣ブラウザ)

一部の Web サイトでは、アクセスするために特定のブラウザの使用が必要であり、また、特定のバージョンの使用が必要な Web サイトもあります。 Curl の組み込みオプション: -A を使用すると、Web サイトにアクセスするためのブラウザを指定できますcurl -A "Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 5.0)" http://www.linux.com #E ファミリーが大好きだと伝えてください。私は GOOGLE クローラー スパイダーです (実際には、curl コマンドです) curl -A "Mozilla/5.0 (互換性; Googlebot/2.​​1; http://www.google.com/) bot.html)" http://aiezu.com #WeChat の内蔵ブラウザを使用していることを Aiezu に伝えてください

curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http://aiezu. com





5. http リクエストを設定します

5.1. http リクエスト ヘッダーを設定します (またはオプション:-H またはオプション:-- head)curl -H "Cache-Control:no-cache" http://aiezu.com5.2. プロキシ サーバーとそのポートを指定します (オプション::-x) #これはインターネットにアクセスするために必要になることが多く、プロキシ サーバーに対して (たとえば、プロキシ サーバーを使用してインターネットにアクセスする場合や、他の人の Web サイトでcurlを使用するために自分のIPアドレスが他の人によってブロックされている場合など)、幸いにもcurlは、組み込みオプションを使用したプロキシ: -x

curl -x 192.168.100.100 :1080 http://www.linux.com


6, http 応答ヘッダー

6.1. http 応答ヘッダーを表示する (オプション:-I)
# このサイトの http ヘッダーがどのようなものかを確認します
curl -I http://aiezu.com
出力:
HTTP/1.1 200 OK
日付: Fri, 25 Nov 2016 16:45:49 GMT
Server: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
有効期限: Thu, 19 Nov 1981 08:52:00 GMT
キャッシュ制御: no-store、no-cache、must-revalidate、post-check=0、pre-check=0
プラグマ: no-cache
さまざま: Accept-Encoding
Content-Type: text/html; charset=utf-8

6.2. http レスポンスのヘッダー情報を保存します (オプション:-D)
curl -D cookied。 txt http://www.linux.com
実行後、Cookie 情報は cookied.txt
に保存されます。 注: -c (小文字) によって生成される Cookie は、-D の Cookie とは異なります。

7. フォームデータの送信

curl -F "pic=@logo.png" -F "site=aiezu" http:/ /aiezu.com/

8、cookie

8.1、Cookie を送信(オプション:-b)
#一部の Web サイトでは Cookie を使用していますセッション情報を記録します。 Chrome などのブラウザの場合、Cookie 情報は簡単に処理できますが、curl
に関連するパラメータを追加することで Cookie を簡単に処理することもできます。ウェブサイトは、お客様がルールに従ってウェブサイトにアクセスしているかどうかを判断するために、お客様の Cookie 情報を監視するため、当社は保存された Cookie 情報を使用する必要があります。組み込みオプション: -b
curl -b cookiec.txt http://www.linux.com

8.2. http 応答に Cookie 情報を保存します (オプション:-c)

After http の実行 応答内の cookie 情報は cookiec.txt
に保存されますcurl -c cookiec.txt http://www.linux.com

9. URL をテストします

9.1. URL が到達可能かどうかをテストする

curl -v http://www.linux.com

9.2. Web ページの戻り値をテストする(オプション: -w [形式])

curl -o /dev/null -s -w %{http_code} www.linux.com

10. 訪問した Web を保存します。ページ (> >)

2.1: linux

のリダイレクト機能を使用して保存します。curl http://www.linux.com >> linux.html

11. リクエスト方法

curl -i -v -H '' -X POST -d '' http:www.test.com/ a/b

このうち、-X POST -d、-X GET -d、-X PUT -d はそれぞれ -F、-G -d、-P と同等です

post リクエストを例:

11.1 , -X POST -d
(11.1.1), POST application/x-www-form-urlencoded
application/x-www-form-urlencoded はデフォルトです
curl - X POST -d "param1 =value1¶m2=value2" http://localhost:3000/data

と同等curl -H "Content-Type:application/x-www-form-urlencoded" -X POST - d "param1=value1¶m2 =value2" http://localhost:3000/data
データ ファイルの使用
curl -X POST -d "@data.txt" http://localhost:3000/data
ここで、data.txt の内容は次のようになります: param1=value1¶m2=value2

(11.1.2), POST application/json

curl -H "Content-Type:application/json" -X POST -d ' {"key1":" value1","key2":"value2"}' http://localhost:3000/data
データ ファイルを使用する場合:
curl -X POST -d "@data.json" http://localhost: 3000/data
data.json の内容は次のとおりです: {"key1":"value1","key2":"value2"}
別の例:
curl - H "Content-type:application /json" -X POST -d "{\"app_key\":\"$appKey\",\"time_stamp\":\"$time\"}" http://www. test.com.cn/a /b

11.2、-F

curl -v -H "token: 222" -F "file=@/Users/funglio/Downloads/401.png" localhost:8000 /api/v1/upimg

curl -f http://www.linux.com/error

11.3、その他の例

(11.3.1),

curl -X POST "http://www.test.com/e/f" -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" \

-d "a=b" \
-d "c=d" \
-d "e=f" \
-d "g=h"

(11.3.2 )、エラー:curl -i -G -d "a=b#1&c=d" http://www.test.com/e/f

正解: urlencode を使用して特殊記号であるパラメータ値を変換します
カール -i -G -d "a=b#1&c=d" http://www.test.com/e/f

12. デバッグ

curl -v可以显示一次http通信的整个过程,包括端口连接和http request头信息。
如果觉得还不够,那么下面的命令可以查看更详细的通信过程:
curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com 
运行后,请打开output.txt文件查看。
curl --trace output.txt  http://www.baidu.com
curl --trace-ascii output2.txt  http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com 

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件
day=`date +%F`
logfile='/var/logs/www.test.com_'`date +%Y%m`'.log'
/usr/bin/echo -e "\n\n[${day}] Start request \n " >> ${logfile}
/bin/curl -v "http://www.test.com/a/b" -d "ccccc" 1>> ${logfile} 2>> ${logfile} --trace-time
/usr/bin/echo -e "\n\n[${day}] End request\n" >> ${logfile}

13、显示抓取错误

curl -f http://www.linux.com/error
ログイン後にコピー

相关推荐:《Linux视频教程

出口 错误説明
1 サポートされていないプロトコルです。このカールのビルドは、このプロトコルをサポートしていません。
2 初期化に失敗しました。
3 URL の形式が正しくありません。構文が正しくありませんでした。
5 プロキシを解決できませんでした。指定されたプロキシ ホストを解決できませんでした。
#6 ホストを解決できませんでした。指定されたリモート ホストは解決されませんでした。
#7 ホストへの接続に失敗しました。
#8 FTP サーバーからの奇妙な応答。サーバーが送信したデータcurlを解析できませんでした。
9 FTPアクセスが拒否されました。サーバーがログインを拒否したか、アクセスしようとした特定のリソースまたはディレクトリへのアクセスを拒否しました。ほとんどの場合、サーバー上に存在しないディレクトリに変更しようとしました。
11 FTP では奇妙な PASS 応答が返されます。 Curl は、PASS リクエストに送信された応答を解析できませんでした。
13 FTP の奇妙な PASV 応答。Curl は、PASV リクエストに送信された応答を解析できませんでした。
14 FTP の奇妙な 227 形式。 Curl はサーバーが送信した 227 行を解析できませんでした。
15 FTP はホストを取得できません。 227 行で取得したホスト IP を解決できませんでした。
17 FTP はバイナリを設定できませんでした。転送方法をバイナリに変更できませんでした。
18 部分ファイルです。ファイルの一部のみが転送されました。
最大ファイル サイズを超えました。
要求された FTP SSL レベルが失敗しました。
データの送信には巻き戻しが必要ですが、失敗しました。

以上がLinuxカールとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!