標籤:count idt 上傳檔案 預設 ftp伺服器 byte local mit 位置
一、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]> 指定Proxy 伺服器地址和連接埠,連接埠預設為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
curl命令詳解