curl命令詳解


一、curl命令詳解

(1)curl命令作用

      curl命令是一個功能強大的網絡工具,它能夠通過http、ftp等方式下載文件,也能夠上傳文件,同時支持HTTPS等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。其實curl遠不止前面所說的那些功能,大家可以通過man curl閱讀手冊頁獲取更多的信息。類似的工具還有wget。curl命令使用了libcurl庫來實現,libcurl庫常用在C程序中用來處理HTTP請求,curlpp是libcurl的一個C++封裝,這幾個東西可以用在抓取網頁、網絡監控等方面的開發,而curl命令可以幫助來解決開發過程中遇到的問題。

(2)常用參數

    curl命令參數很多,這里只列出我曾經用過、特別是在shell腳本中經常用到過的那些。

-a/--append 上傳文件時,附加到目標文件

-A:隨意指定自己這次訪問所宣稱的自己的瀏覽器信息

-b/--cookie <name=string/file> cookie字符串或文件讀取位置,使用option來把上次的cookie信息追加到http request里面去。

-c/--cookie-jar <file> 操作結束后把cookie寫入到這個文件中

-C/--continue-at <offset>  斷點續轉

-d/--data <data>   HTTP POST方式傳送數據

    --data-ascii <data> 以ascii的方式post數據
     --data-binary <data> 以二進制的方式post數據
     --negotiate 使用HTTP身份驗證
     --digest 使用數字身份驗證
     --disable-eprt 禁止使用EPRT或LPRT
     --disable-epsv 禁止使用EPSV

-D/--dump-header <file> 把header信息寫入到該文件中

     --egd-file <file>  為隨機數據(SSL)設置EGD socket路徑

     --tcp-nodelay     使用TCP_NODELAY選項

-e/--referer <URL>  指定引用地址

-F/--form <name=content>   模擬http表單提交數據

     --form-string <name=string> 模擬http表單提交數據

-G/--get    以get的方式來發送數據

-H/--header <header> 指定請求頭參數

    --ignore-content-length  忽略的HTTP頭信息的長度

-i/--include     輸出時包括protocol頭信息

-I/--head 僅返回頭部信息,使用HEAD請求

-k/--insecure  允許不使用證書到SSL站點

-K/--config    指定的配置文件讀取

-l/--list-only   列出ftp目錄下的文件名稱

    --limit-rate <rate> 設置傳輸速度

     --local-port<NUM>  強制使用本地端口號

-m/--max-time <seconds> 指定處理的最大時長

     --max-redirs <num>    設置最大讀取的目錄數

     --max-filesize <bytes>  設置最大下載的文件總量

-o/--output <file>   指定輸出文件名稱

-O/--remote-name  把輸出寫到該文件中,保留遠程文件的文件名

 

-v/--verbose  小寫的v參數,用於打印更多信息,包括發送的請求信息,這在調試腳本是特別有用。

-s/--slient 減少輸出的信息,比如進度

--connect-timeout <seconds> 指定嘗試連接的最大時長

-x/--proxy <proxyhost[:port]> 指定代理服務器地址和端口,端口默認為1080

 

 

 

 

 

-u/--user <user[:password]>設置服務器的用戶和密碼

-r/--range <range>檢索來自HTTP/1.1或FTP服務器字節范圍

   --range-file 讀取(SSL)的隨機文件

-R/--remote-time   在本地生成文件時,保留遠程文件時間

    --retry <num>   指定重試次數

    --retry-delay <seconds>   傳輸出現問題時,設置重試間隔時間

    --retry-max-time <seconds>  傳輸出現問題時,設置最大重試時間

-s/--silent  靜默模式。不輸出任何東西

-S/--show-error  顯示錯誤

    --socks4 <host[:port]> 用socks4代理給定主機和端口

    --socks5 <host[:port]> 用socks5代理給定主機和端口

    --stderr <file>

-x/--proxy <host[:port]> 在給定的端口上使用HTTP代理

-X/--request <command> 指定什么命令。curl默認的HTTP動詞是GET,使用-X參數可以支持其他動詞。

-T/--upload-file <file> 指定上傳文件路徑

(3)使用實例

1、抓取cokkie信息到一個文件中

curl -c cookie0.txt -d "username=****&password=***" http://www.kuaipan.cn/accounts/login/

2、get方法獲取信息

curl -G -I -o xsrf.txt -b cookie1.txt -c cookie2.txt http://web.kuaipan.cn/n/drive/home.tmpl/upload


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM