cszer

linux命令行浏览器–curl

分类: 技术, Linux 基础   标签: ,    评论: 1   阅读:3,513 views

curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。

下面用几个常用实例来了解curl的功能:

1、获取网页

curl www.cszhi.com

该命令将下载整个HTML文档。默认不显示文档头部,即html的header。要全部显示,加-i参数;只显示头部,用参数-I。
在任何时候,都可以使用-v参数跟踪curl的运行过程。

2、保存网页到一个文件

curl www.cszhi.com>index.html

或使用-o参数:

[root@vps ~]# curl -o index.html www.cszhi.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20302    0 20302    0     0  17974      0 --:--:--  0:00:01 --:--:-- 30714

3、使用代理:-x

curl -x 60.28.206.85:8088 www.cszhi.com

4、保存cookie信息:-D

curl  -D cookie.txt www.cszhi.com

5、再次访问是使用上次保存的cookie信息:-b

curl  -b cookie.txt www.cszhi.com

6、指定用户客户端,伪装成任何浏览器:-A

curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" www.cszhi.com

以上命令curl伪装成IE5.0

7、提交表单
1)提交GET表单,例如在页面中有这样一段:

1
2
3
4
<form action="execute.php" method="GET">
<input style="margin-right: 0px; padding-right: 0px;" type="text" name="year" />
<input type="submit" name="press" value="OK" />
</form>
curl "ww.cszhi.com/execute.php?year=2012&press=OK"

2)提交POST表单,-F,以wordpress后台管理为例:

curl -F log=xxx pwd=xxx www.cszhi.com/wp-login.php

8、使用跳转:-e

curl -e "mail.qq.com" www.qq.com

告诉对方服务器我们是从mail.qq.com链接过来

curl常用参数:

	* -a/--append 上传文件时,附加到目标文件
	*  -A/--user-agent   设置用户代理发送给服务器
	*  - anyauth   可以使用“任何”身份验证方法
	*  -b/--cookie  cookie字符串或文件读取位置
	*  - basic 使用HTTP基本验证
	*  -B/--use-ascii 使用ASCII /文本传输
	*  -c/--cookie-jar  操作结束后把cookie写入到这个文件中
	*  -C/--continue-at   断点续转
	*  -d/--data    HTTP POST方式传送数据
	*  --data-ascii   以ascii的方式post数据
	*  --data-binary  以二进制的方式post数据
	*  --negotiate     使用HTTP身份验证
	*  --digest        使用数字身份验证
	*  --disable-eprt  禁止使用EPRT或LPRT
	*  --disable-epsv  禁止使用EPSV
	*  -D/--dump-header  把header信息写入到该文件中
	*  --egd-file  为随机数据(SSL)设置EGD socket路径
	*  --tcp-nodelay   使用TCP_NODELAY选项
	*  -e/--referer 来源网址
	*  -E/--cert  客户端证书文件和密码 (SSL)
	*  --cert-type  证书文件类型 (DER/PEM/ENG) (SSL)
	*  --key      私钥文件名 (SSL)
	*  --key-type  私钥文件类型 (DER/PEM/ENG) (SSL)
	*  --pass    私钥密码 (SSL)
	*  --engine   加密引擎使用 (SSL). "--engine list" for list
	*  --cacert  CA证书 (SSL)
	*  --capath  CA目录 (made using c_rehash) to verify peer against (SSL)
	*  --ciphers   SSL密码
	*  --compressed    要求返回是压缩的形势 (using deflate or gzip)
	*  --connect-timeout  设置最大请求时间
	*  --create-dirs   建立本地目录的目录层次结构
	*  --crlf          上传是把LF转变成CRLF
	*  -f/--fail          连接失败时不显示http错误
	*  --ftp-create-dirs 如果远程目录不存在,创建远程目录
	*  --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
	*  --ftp-pasv      使用 PASV/EPSV 代替端口
	*  --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
	*  --ftp-ssl       尝试用 SSL/TLS 来进行ftp数据传输
	*  --ftp-ssl-reqd  要求用 SSL/TLS 来进行ftp数据传输
	*  -F/--form  模拟http表单提交数据
	*  -form-string  模拟http表单提交数据
	*  -g/--globoff 禁用网址序列和范围使用{}和[]
	*  -G/--get 以get的方式来发送数据
	*  -h/--help 帮助
	*  -H/--header 自定义头信息传递给服务器
	*  --ignore-content-length  忽略的HTTP头信息的长度
	*  -i/--include 输出时包括protocol头信息
	*  -I/--head  只显示文档信息
	*  从文件中读取-j/--junk-session-cookies忽略会话Cookie
	*  - 界面指定网络接口/地址使用
	*  - krb4 启用与指定的安全级别krb4
	*  -j/--junk-session-cookies 读取文件进忽略session cookie
	*  --interface  使用指定网络接口/地址
	*  --krb4   使用指定安全级别的krb4
	*  -k/--insecure 允许不使用证书到SSL站点
	*  -K/--config  指定的配置文件读取
	*  -l/--list-only 列出ftp目录下的文件名称
	*  --limit-rate  设置传输速度
	*  --local-port 强制使用本地端口号
	*  -m/--max-time  设置最大传输时间
	*  --max-redirs  设置最大读取的目录数
	*  --max-filesize  设置最大下载的文件总量
	*  -M/--manual  显示全手动
	*  -n/--netrc 从netrc文件中读取用户名和密码
	*  --netrc-optional 使用 .netrc 或者 URL来覆盖-n
	*  --ntlm          使用 HTTP NTLM 身份验证
	*  -N/--no-buffer 禁用缓冲输出
	*  -o/--output 把输出写到该文件中
	*  -O/--remote-name 把输出写到该文件中,保留远程文件的文件名
	*  -p/--proxytunnel   使用HTTP代理
	*  --proxy-anyauth 选择任一代理身份验证方法
	*  --proxy-basic   在代理上使用基本身份验证
	*  --proxy-digest  在代理上使用数字身份验证
	*  --proxy-ntlm    在代理上使用ntlm身份验证
	*  -P/--ftp-port

除非注明,文章皆由( csz )原创,转载请标明本文地址
本文地址: http://www.cszhi.com/20120329/curl.html

03-29
2012

发表评论