<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Chan Chen Coding...

    Curl命令使用整理

    Refer to: http://www.cnblogs.com/wangkangluo1/archive/2012/04/17/2453975.html

    可以看作命令行瀏覽器

    1、開啟gzip請求
    curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte

    2、監控網頁的響應時間
    curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.kklinux.com"

    3. 監控站點可用性
    curl -o /dev/null -s -w %{http_code} "http://www.kklinux.com"

    4、以http1.0協議請求(默認為http1.1) 
    curl -0 .............. 
          1)讀取網頁 
      $ curl linuxidc.com">http://www.linuxidc.com 
      2)保存網頁 
      $ curl http://www.linuxidc.com > page.html $ curl -o page.html http://www.linuxidc.com 
      3)使用的proxy服務器及其端口:-x 
      $ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com 
      4)使用cookie來記錄session信息 
      $ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com 
    option: -D 是把http的response里面的cookie信息存到一個特別的文件中去,這樣,當頁面被存到page.html的同時,cookie信息也被存到了cookie0001.txt里面了 
        5)那么,下一次訪問的時候,如何繼續使用上次留下的cookie信息呢? 
      使用option來把上次的cookie信息追加到http request里面去:-b 
      $ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com 

    6)瀏覽器信息~~~~ 
    隨意指定自己這次訪問所宣稱的自己的瀏覽器信息: -A
    curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.yahoo.com 
    這樣,服務器端接到訪問的要求,會認為你是一個運行在Windows 2000上的IE6.0,嘿嘿嘿,其實也許你用的是蘋果機呢! 
    而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"則可以告訴對方你是一臺PC上跑著的Linux,用的是Netscape 4.73,呵呵呵 

    7)
    另外一個服務器端常用的限制方法,就是檢查http訪問的referer。比如你先訪問首頁,再訪問里面所指定的下載頁,這第二次訪問的referer地址就是第一次訪問成功后的頁面地 
    址。這樣,服務器端只要發現對下載頁面某次訪問的referer地址不 是首頁的地址,就可以斷定那是個盜連了~~~~~ 
    討厭討厭~~~我就是要盜連~~~~~!!
    幸好curl給我們提供了設定referer的option: -e
    curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.yahoo.com" -o page.html -D cookie0001.txt http://www.yahoo.com 
    這樣,就可以騙對方的服務器,你是從mail.yahoo.com點擊某個鏈接過來的了,呵呵呵 

    8)curl 下載文件 
    剛才講過了,下載頁面到一個文件里,可以使用 -o ,下載文件也是一樣。
    比如, curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
    這里教大家一個新的option: -O
    大寫的O,這么用: curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG
    這樣,就可以按照服務器上的文件名,自動存在本地了! 
    再來一個更好用的。
    如果screen1.JPG以外還有screen2.JPG、screen3.JPG、....、screen10.JPG需要下載,難不成還要讓我們寫一個script來完成這些操作?
    不干!
    在curl里面,這么寫就可以了:
    curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG 
    呵呵呵,厲害吧?!~~~ 
    9)
    再來,我們繼續講解下載!
    curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG 
    這樣產生的下載,就是
    ~zzh/001.JPG
    ~zzh/002.JPG
    ...
    ~zzh/201.JPG
    ~nick/001.JPG
    ~nick/002.JPG
    ...
    ~nick/201.JPG 
    夠方便的了吧?哈哈哈 
    咦?高興得太早了。
    由于zzh/nick下的文件名都是001,002...,201,下載下來的文件重名,后面的把前面的文件都給覆蓋掉了~~~ 
    沒關系,我們還有更狠的!
    curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG 
    --這是.....自定義文件名的下載?
    --對頭,呵呵! 
    #1是變量,指的是{zzh,nick}這部分,第一次取值zzh,第二次取值nick
    #2代表的變量,則是第二段可變部分---[001-201],取值從001逐一加到201
    這樣,自定義出來下載下來的文件名,就變成了這樣:
    原來: ~zzh/001.JPG ---> 下載后: 001-zzh.JPG
    原來: ~nick/001.JPG ---> 下載后: 001-nick.JPG 
    這樣一來,就不怕文件重名啦,呵呵 

    9)
    繼續講下載
    我們平時在windows平臺上,flashget這樣的工具可以幫我們分塊并行下載,還可以斷線續傳。
    curl在這些方面也不輸給誰,嘿嘿 
    比如我們下載screen1.JPG中,突然掉線了,我們就可以這樣開始續傳
    curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG 
    當然,你不要拿個flashget下載了一半的文件來糊弄我~~~~別的下載軟件的半截文件可不一定能用哦~~~ 
    分塊下載,我們使用這個option就可以了: -r
    舉例說明
    比如我們有一個http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 要下載(趙老師的電話朗誦 :D )
    我們就可以用這樣的命令:
    curl -r 0-10240 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
    curl -r 10241-20480 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
    curl -r 20481-40960 -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\
    curl -r 40961- -o "zhao.part1" http:/cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 
    這樣就可以分塊下載啦。
    不過你需要自己把這些破碎的文件合并起來
    如果你用UNIX或蘋果,用 cat zhao.part* > zhao.mp3就可以
    如果用的是Windows,用copy /b 來解決吧,呵呵 
    上面講的都是http協議的下載,其實ftp也一樣可以用。
    用法嘛,
    curl -u name:passwd ftp://ip:port/path/file
    或者大家熟悉的
    curl ftp://name:passwd@ip:port/path/file 
      
    10)上傳的option是 -T 
    比如我們向ftp傳一個文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/ 
    當然,向http服務器上傳文件也可以
    比如 curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi
    注意,這時候,使用的協議是HTTP的PUT method 
    剛才說到PUT,嘿嘿,自然讓老服想起來了其他幾種methos還沒講呢!
    GET和POST都不能忘哦。 
    http提交一個表單,比較常用的是POST模式和GET模式 
    GET模式什么option都不用,只需要把變量寫在url里面就可以了
    比如:
    curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345 
    而POST模式的option則是 -d 
    比如,curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi

    就相當于向這個站點發出一次登陸申請~~~~~ 
    到底該用GET模式還是POST模式,要看對面服務器的程序設定。 
    一點需要注意的是,POST模式下的文件上的文件上傳,比如
    <form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">
    <input type=file name=upload>
    <input type=submit name=nick value="go">
    </form>
    這樣一個HTTP表單,我們要用curl進行模擬,就該是這樣的語法:
    curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi 
    羅羅嗦嗦講了這么多,其實curl還有很多很多技巧和用法
    比如 https的時候使用本地證書,就可以這樣
    curl -E localcert.pem https://remote_server 
    再比如,你還可以用curl通過dict協議去查字典~~~~~
    curl dict://dict.org/d:computer 

    今天為了檢查所有刺猬主機上所有域名是否有備案.在使用wget不爽的情況下,找到了curl這個命令行流量器命令.發現其對post的調用還是蠻好的.特別有利于對提交信息及變 
    更參數進行較驗.對于我想將幾十萬域名到miibeian.gov.cn進行驗證是否有備案信息非常有用.發現這篇文章很不錯,特為轉貼. 
    我的目標:
    curl -d "cxfs=1&ym=xieyy.cn" http://www.miibeian.gov.cn/baxx_cx_servlet 
    在出來的信息中進行過濾,提取備案號信息,并設置一個標識位.將域名,備案號及標識位入庫 

    用curl命令,post提交帶空格的數據 
    今天偶然遇到一個情況,我想用curl登入一個網頁,無意間發現要post的數據里帶空格。比如用戶名為"abcdef",密碼為"abc def",其中有一個空格,按照我以前的方式提交: 
    curl -D cookie -d "username=abcdef&password=abc def" http://login.xxx.com/提示登入失敗。 

    于是查看curl手冊man curl。找到: 
    d/--data (HTTP) Sends the speci?ed data in a POST request to the HTTP server, in a way that can emulate as if a user has ?lled in a HTML form and pressed the 
    submit button. Note that the data is sent exactly as speci?ed with no extra processing (with all newlines cut off). The data is expected to be "url-encoded". 
    This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to -F/--form. If this option is used 
    more than once on the same command line, the data pieces speci?ed will be merged together with a separating &-letter. Thus, using ’-d name=daniel -d 
    skill=lousy’ would generate a post chunk that looks like ’name=daniel&skill=lousy’. 
    于是改用: 
    curl -D cookie -d "username=abcdef" -d "password=abc efg" http://login.xxx.com/這樣就能成功登入了。 

    (責任編輯:飄飛的夜)
     

    Curl是Linux下一個很強大的http命令行工具,其功能十分強大。

    1) 二話不說,先從這里開始吧!

    $ curl http://www.linuxidc.com

    回車之后,www.linuxidc.com 的html就稀里嘩啦地顯示在屏幕上了    ~

    2) 嗯,要想把讀過來頁面存下來,是不是要這樣呢?

    $ curl http://www.linuxidc.com > page.html

    當然可以,但不用這么麻煩的!

    用curl的內置option就好,存下http的結果,用這個option: -o

    $ curl -o page.html http://www.linuxidc.com

    這樣,你就可以看到屏幕上出現一個下載頁面進度指示。等進展到100%,自然就 OK咯

    3) 什么什么?!訪問不到?肯定是你的proxy沒有設定了。

    使用curl的時候,用這個option可以指定http訪問所使用的proxy服務器及其端口: -x

    $ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com

    4) 訪問有些網站的時候比較討厭,他使用cookie來記錄session信息。

    像IE/NN這樣的瀏覽器,當然可以輕易處理cookie信息,但我們的curl呢?.....

    我們來學習這個option: -D <— 這個是把http的response里面的cookie信息存到一個特別的文件中去

    $ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

    這樣,當頁面被存到page.html的同時,cookie信息也被存到了cookie0001.txt里面了

    5)那么,下一次訪問的時候,如何繼續使用上次留下的cookie信息呢?要知道,很多網站都是靠監視你的cookie信息,來判斷你是不是不按規矩訪問他們的網站的。

    這次我們使用這個option來把上次的cookie信息追加到http request里面去: -b

    $ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com

    這樣,我們就可以幾乎模擬所有的IE操作,去訪問網頁了!

    6)稍微等等    ~我好像忘記什么了    ~

    對了!是瀏覽器信息

    有些討厭的網站總要我們使用某些特定的瀏覽器去訪問他們,有時候更過分的是,還要使用某些特定的版本    NND,哪里有時間為了它去找這些怪異的瀏覽器呢!?

    好在curl給我們提供了一個有用的option,可以讓我們隨意指定自己這次訪問所宣稱的自己的瀏覽器信息: -A

    $ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

    這樣,服務器端接到訪問的要求,會認為你是一個運行在Windows 2000上的 IE6.0,嘿嘿嘿,其實也許你用的是蘋果機呢!

    而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"則可以告訴對方你是一臺 PC上跑著的Linux,用的是Netscape 4.73,呵呵呵

    7)另外一個服務器端常用的限制方法,就是檢查http訪問的referer。比如你先訪問首頁,再訪問里面所指定的下載頁,這第二次訪問的 referer地址就是第一次訪問成功后的頁面地址。這樣,服務器端只要發現對下載頁面某次訪問的referer地址不是首頁的地址,就可以斷定那是個盜 連了    ~

    討厭討厭 ~我就是要盜連    ~!!

    幸好curl給我們提供了設定referer的option: -e

    $ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com

    這樣,就可以騙對方的服務器,你是從mail.linuxidc.com點擊某個鏈接過來的了,呵呵呵

    8)寫著寫著發現漏掉什么重要的東西了!——- 利用curl 下載文件

    剛才講過了,下載頁面到一個文件里,可以使用 -o ,下載文件也是一樣。比如,

    $ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

    這里教大家一個新的option: -O 大寫的O,這么用:

    $ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

    這樣,就可以按照服務器上的文件名,自動存在本地了!

    再來一個更好用的。

    如果screen1.JPG以外還有screen2.JPG、screen3.JPG、....、screen10.JPG需要下載,難不成還要讓我們寫一個script來完成這些操作?

    不干!

    在curl里面,這么寫就可以了:

    $ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG

    呵呵呵,厲害吧?! ~

    9)再來,我們繼續講解下載!

    $ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

    這樣產生的下載,就是

    ~zzh/001.JPG

    ~zzh/002.JPG

    ...

    ~zzh/201.JPG

    ~nick/001.JPG

    ~nick/002.JPG

    ...

    ~nick/201.JPG

    夠方便的了吧?哈哈哈

    咦?高興得太早了。

    由于zzh/nick下的文件名都是001,002...,201,下載下來的文件重名,后面的把前面的文件都給覆蓋掉了 ~

    沒關系,我們還有更狠的!

    $ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

    —這是.....自定義文件名的下載? —對頭,呵呵!

    這樣,自定義出來下載下來的文件名,就變成了這樣:原來: ~zzh/001.JPG —-> 下載后: 001-zzh.JPG 原來: ~nick/001.JPG —-> 下載后: 001-nick.JPG

    這樣一來,就不怕文件重名啦,呵呵



    -----------------------------------------------------
    Silence, the way to avoid many problems;
    Smile, the way to solve many problems;

    posted on 2013-05-09 11:52 Chan Chen 閱讀(382) 評論(0)  編輯  收藏 所屬分類: Linux

    主站蜘蛛池模板: 99在线观看视频免费| a级毛片高清免费视频| 在线永久看片免费的视频| 日本久久久久亚洲中字幕| 无码精品人妻一区二区三区免费看 | 国产精品四虎在线观看免费| 亚洲中文字幕无码中文字| 成人影片麻豆国产影片免费观看| 麻豆狠色伊人亚洲综合网站 | 一级成人a毛片免费播放| 亚洲精品免费在线观看| 99视频免费播放| 亚洲日韩乱码中文无码蜜桃| 成年免费大片黄在线观看岛国| 亚洲中文字幕无码一去台湾| 免费精品一区二区三区在线观看| 国产精品无码亚洲精品2021| 亚洲国模精品一区| 黄色网址在线免费| 亚洲国产精品乱码在线观看97| 一本无码人妻在中文字幕免费| 亚洲国产av玩弄放荡人妇 | 免费中文字幕一级毛片| 黄色视频在线免费观看| 精品亚洲成a人片在线观看少妇| 69式国产真人免费视频 | 青青青国产手机频在线免费观看| 久久亚洲日韩看片无码| 免费无码黄网站在线观看| 一级毛片免费视频网站| 久久亚洲春色中文字幕久久久 | 黄瓜视频高清在线看免费下载| 精品久久久久久亚洲中文字幕| 91麻豆精品国产自产在线观看亚洲 | 亚洲国产日韩精品| 亚洲一级片内射网站在线观看| 欧洲精品99毛片免费高清观看| 亚洲爆乳大丰满无码专区| 亚洲精品一品区二品区三品区| 国产大片线上免费观看| 一级看片免费视频囗交|