CURL用法大全
1.访问http页面内容,输出到标准输出 curl http://www.neocanable.com 2.生成文件 curl -o index.html http://www.neocanable.com 以远程文件名保存 curl -O http://www.neocanable.com 参数-o为输出到某个文件,上面的命令等同于wget http://www.neocanable.com或者curl http://www.neocanable.com > index.html 3.添加proxy curl -x xxx.xxx.xxx.xxx http://www.neocanable.com 通过代理ip访问网页 4.添加浏览器信息 通常服务器的日志会记录客户端浏览器的信息 curl -A “浏览器信息” http://www.neocanable.com 5.批量下载文件 curl http://www.xxx.com/action/[1-100].html > /dev/null 这个最适合爬自己网站的缓存了 文件下载后重新命名和类正则使用,下载后的文件是demo1-001.html curl -o #1_#2 http://www.xxx.com/~{demo1,demo2}/[1-100].html 创建需要的目录 curl -o –create-dirs http://www.xxx.com/~{demo1,demo2}/[1-100].html 6.分块下载 curl -r 0-1024 http://www.xxx.com/aa.zip curl -r 1025- http://www.xxx.com/aa.zip 先下1M,然后再下剩下的 7.curl ftp 访问ftp地址 curl -u username:password ftp://www.xxx.com curl -u ftp://www.xxx.com 添加端口 curl -u username:password -P8899 ftp://www.xxx.com 上传文件到ftp curl -T /home/neo/demo.jpg -u username:password ftp://www.xxx.com 8.测试参数 测试站点相应时间 curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} www.google.com 查看http_code curl -o /dev/null -s -w %{http_code} http://www.neocanable.com 网页或文件大小 curl -o /dev/null -s -w %{size_header} http://www.neocanable.com http_code:http返回类似404,200,500等 time_total:总相应时间 time_namelookup:域名解析时间 time_connect:连接到目标地址耗费的时间 time_pretransfer:从执行到开始传输文件的时间间隔 time_starttransfer:从执行到开始传输文件的时间间隔 size_download:下载网页或文件大小 size_upload:上传文件大小 size_header:响应头 size_request:发送请求参数大小 speed_download:传输速度 speed_upload:平均上传速度 content_type:下载文件类型. (Added in 7.9.5) 9.post和get请求 get请求 curl “param1=name¶ms2=pass” http://www.xxx.com post请求 curl -d “param1=name¶ms2=pass” http://www.xxx.com 10.响应超时 curl -m 40 http://www.xxx.com curl –timeout 40 http://www.xxx.com 11.破解网站的防盗链 curl -e “http://www.a.net” http://www.b.net/acion 12.网站头部信息 curl -I http://www.neocanable.com 13.更总url跳转 curl -L http://url.cn/2yQFfd 14.正确的给url编码 curl –data-urlencode http://www.xxx.com/action?name=张三&sex=男 15.限制url的传输速度 curl –limit-rate http://www.xxx.com/action 16.限制下载文件大小 curl –max-filesize 1024 http://www.xxx.com/action 超过1M将不执行操作,并且返回出错 17.curl错误代码 1:未支持的协议。此版cURL不支持这一协议。 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:部分文件。只有部分文件被传输。 19:FTP不能下载/访问给定的文件, RETR (或类似)命令失败。 21:FTP quote错误。quote命令从服务器返回错误。 22:HTTP 找不到网页。找不到所请求的URL或返回另一个HTTP 400或以上错误。此返回代码只出现在使用了-f/–fail选项以后。 23:写入错误。cURL无法向本地文件系统或类似目的写入数据。 25:FTP 无法STOR文件。服务器拒绝了用于FTP上传的STOR操作。 26:读错误。各类读取问题。 27:内存不足。内存分配请求失败。 28:操作超时。到达指定的超时期限条件。 30:FTP PORT失败。PORT命令失败。并非所有的FTP服务器支持PORT命令,请尝试使用被动(PASV)传输代替! 31:FTP无法使用REST命令。REST命令失败。此命令用来恢复的FTP传输。 33:HTTP range错误。range “命令”不起作用。 34:HTTP POST错误。内部POST请求产生错误。 35:SSL连接错误。SSL握手失败。 36:FTP 续传损坏。不能继续早些时候被中止的下载。 37:文件无法读取。无法打开文件。权限问题? 38:LDAP 无法绑定。LDAP绑定(bind)操作失败。 39:LDAP 搜索失败。 41:功能无法找到。无法找到必要的LDAP功能。 42:由回调终止。应用程序告知cURL终止运作。 43:内部错误。由一个不正确参数调用了功能。 45:接口错误。指定的外发接口无法使用。 47:过多的重定向。cURL达到了跟随重定向设定的最大限额跟 48:指定了未知TELNET选项。 49:不合式的telnet选项。 51:peer的SSL证书或SSH的MD5指纹没有确定。 52:服务器无任何应答,该情况在此处被认为是一个错误。 53:找不到SSL加密引擎。 54:无法将SSL加密引擎设置为默认。 55:发送网络数据失败。 56:在接收网络数据时失败。 58:本地证书有问题。 59:无法使用指定的SSL密码。 60:peer证书无法被已知的CA证书验证。 61:无法辨识的传输编码。 62:无效的LDAP URL。 63:超过最大文件尺寸。 64:要求的FTP的SSL水平失败。 65:发送此数据需要的回卷(rewind)失败。 66:初始化SSL引擎失败。 67:用户名、密码或类似的信息未被接受,cURL登录失败。 68:在TFTP服务器上找不到文件。 69:TFTP服务器权限有问题。 70:TFTP服务器磁盘空间不足。 71:非法的TFTP操作。 72:未知TFTP传输编号(ID)。 73:文件已存在(TFTP) 。 74:无此用户(TFTP) 。 75:字符转换失败。 76:需要字符转换功能。 77:读SSL证书出现问题(路径?访问权限? ) 。 78:URL中引用的资源不存在。 79:SSH会话期间发生一个未知错误。 80:未能关闭SSL连接。 82:无法加载CRL文件,丢失或格式不正确(在7.19.0版中增加 ) 。 83:签发检查失败(在7.19.0版中增加 ) 。 ### CURL用法大全 CURL是一款强大的命令行工具,用于从或向服务器传输数据。它支持多种协议,如HTTP、HTTPS、FTP等,并且具备高度的可配置性,使其成为开发人员、系统管理员以及测试工程师的必备工具之一。本文将详细介绍CURL的各种用法及应用场景。 #### 1. 访问HTTP页面内容并输出到标准输出 ```shell curl http://www.neocanable.com ``` 这条命令将请求`http://www.neocanable.com`的HTML内容,并将其打印到终端。 #### 2. 生成文件 ```shell curl -o index.html http://www.neocanable.com ``` 使用`-o`选项可以将远程文件内容保存到本地文件中,上述命令将会把网站内容保存到名为`index.html`的文件中。如果省略文件名,则默认保存为远程文件名: ```shell curl -O http://www.neocanable.com ``` 这与使用`wget`命令或使用重定向的方式达到相同的效果: ```shell curl http://www.neocanable.com > index.html ``` #### 3. 添加代理 ```shell curl -x xxx.xxx.xxx.xxx http://www.neocanable.com ``` 这条命令通过指定的代理服务器来访问目标网址。 #### 4. 添加浏览器信息 ```shell curl -A "浏览器信息" http://www.neocanable.com ``` 服务器日志通常会记录客户端浏览器的信息,通过`-A`选项可以自定义这些信息,以便更好地模拟浏览器行为。 #### 5. 批量下载文件 ```shell curl http://www.xxx.com/action/[1-100].html > /dev/null ``` 该命令将连续下载`action/1.html`至`action/100.html`的所有文件,并丢弃输出。如果需要对下载后的文件进行重命名或使用类正则表达式,可以使用以下命令: ```shell curl -o #1_#2 http://www.xxx.com/~{demo1,demo2}/[1-100].html ``` 还可以创建所需的目录结构: ```shell curl -o --create-dirs http://www.xxx.com/~{demo1,demo2}/[1-100].html ``` #### 6. 分块下载 ```shell curl -r 0-1024 http://www.xxx.com/aa.zip curl -r 1025- http://www.xxx.com/aa.zip ``` 第一条命令仅下载前1MB的内容,第二条命令下载剩余部分。这种方法常用于恢复中断的下载任务。 #### 7. 使用CURL与FTP交互 - **访问FTP地址** ```shell curl -u username:password ftp://www.xxx.com ``` 这里使用`-u`选项提供用户名和密码。 - **上传文件到FTP** ```shell curl -T /home/neo/demo.jpg -u username:password ftp://www.xxx.com ``` 使用`-T`选项指定要上传的文件。 #### 8. 测试参数 - **测试站点响应时间** ```shell curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} www.google.com ``` 上述命令会输出连接时间、开始传输时间及总时间。 - **查看HTTP状态码** ```shell curl -o /dev/null -s -w %{http_code} http://www.neocanable.com ``` HTTP状态码用于表示服务器响应的状态,例如200表示成功,404表示未找到。 - **网页或文件大小** ```shell curl -o /dev/null -s -w %{size_header} http://www.neocanable.com ``` 此命令显示HTTP响应头中的内容长度。 #### 9. 发送GET和POST请求 - **GET请求** ```shell curl "param1=name¶m2=pass" http://www.xxx.com ``` - **POST请求** ```shell curl -d "param1=name¶m2=pass" http://www.xxx.com ``` `GET`请求将参数附加在URL之后,而`POST`请求将参数放在请求体中。 #### 10. 响应超时 ```shell curl -m 40 http://www.xxx.com ``` 使用`-m`或`--timeout`选项可以设置超时时间,超过该时间后命令将自动退出。 #### 11. 破解网站的防盗链 ```shell curl -e "http://www.a.net" http://www.b.net/acion ``` 通过设置`-e`选项来伪造来源URL,从而绕过防盗链机制。 #### 12. 获取网站头部信息 ```shell curl -I http://www.neocanable.com ``` 这条命令仅请求HTTP头部信息,而不获取实际的网页内容。 #### 13. 跟踪URL跳转 ```shell curl -L http://url.cn/2yQFfd ``` 使用`-L`选项可以让CURL自动跟随重定向。 #### 14. 正确地给URL编码 ```shell curl --data-urlencode "http://www.xxx.com/action?name=张三&sex=男" ``` 对于包含特殊字符的URL,使用`--data-urlencode`选项可以确保URL被正确编码。 #### 15. 限制URL的传输速度 ```shell curl --limit-rate 20k http://www.xxx.com/action ``` 这条命令将限制下载或上传的速度为20Kb/s。 #### 16. 限制下载文件大小 ```shell curl --max-filesize 1024 http://www.xxx.com/action ``` 如果文件大小超过1MB,命令将不执行并返回错误。 #### 17. CURL错误代码 - **1:** 不支持的协议。此版本CURL不支持指定的协议。 - **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:** 部分文件。只有部分文件被传输。 - **19:** FTP无法下载/访问给定的文件。RETR命令失败。 - **21:** FTP quote错误。quote命令从服务器返回错误。 - **22:** HTTP找不到网页。找不到所请求的URL或返回另一个HTTP 400或以上的错误。 - **23:** 写入错误。CURL无法向本地文件系统或类似目的地写入数据。 - **25:** FTP无法STOR文件。服务器拒绝了用于FTP上传的STOR操作。 - **26:** 读取错误。各类读取问题。 - **27:** 内存不足。内存分配请求失败。 - **28:** 操作超时。到达指定的超时期限条件。 - **30:** FTP PORT失败。PORT命令失败。并非所有的FTP服务器支持PORT命令,请尝试使用被动(PASV)传输代替! - **31:** FTP无法使用REST命令。REST命令失败。此命令用来恢复的FTP传输。 - **33:** HTTP range错误。range“命令”不起作用。 - **34:** HTTP POST错误。内部POST请求产生错误。 - **35:** SSL连接错误。SSL握手失败。 - **36:** FTP续传损坏。不能继续早些时候被中止的下载。 - **37:** 文件无法读取。无法打开文件。权限问题? - **38:** LDAP无法绑定。LDAP绑定(bind)操作失败。 - **39:** LDAP搜索失败。 - **41:** 功能无法找到。无法找到必要的LDAP功能。 - **42:** 由回调终止。应用程序告知CURL终止运作。 - **43:** 内部错误。由一个不正确参数调用了功能。 - **45:** 接口错误。指定的外发接口无法使用。 - **47:** 过多的重定向。CURL达到了跟随重定向设定的最大限额。 - **48:** 指定了未知TELNET选项。 - **49:** 不合适的telnet选项。 - **51:** peer的SSL证书或SSH的MD5指纹没有确定。 - **52:** 服务器无任何响应,该情况在此处被认为是一个错误。 - **53:** 找不到SSL加密引擎。 - **54:** 无法将SSL加密引擎设置为默认。 - **55:** 发送网络数据失败。 - **56:** 在接收网络数据时失败。 - **58:** 本地证书有问题。 - **59:** 无法使用指定的SSL密码。 - **60:** peer证书无法被已知的CA证书验证。 - **61:** 无法辨识的传输编码。 - **62:** 无效的LDAP URL。 - **63:** 超过最大文件尺寸。 - **64:** 要求的FTP的SSL水平失败。 - **65:** 发送此数据需要的回卷(rewind)失败。 - **66:** 初始化SSL引擎失败。 - **67:** 用户名、密码或类似的信息未被接受,CURL登录失败。 - **68:** 在TFTP服务器上找不到文件。 - **69:** TFTP服务器权限有问题。 - **70:** TFTP服务器磁盘空间不足。 - **71:** 非法的TFTP操作。 - **72:** 未知TFTP传输编号(ID)。 - **73:** 文件已存在(TFTP) 。 - **74:** 无此用户(TFTP) 。 - **75:** 字符转换失败。 - **76:** 需要字符转换功能。 - **77:** 读取SSL证书出现问题(路径?访问权限?)。 - **78:** URL中引用的资源不存在。 - **79:** SSH会话期间发生一个未知错误。 - **80:** 未能关闭SSL连接。 - **82:** 无法加载CRL文件,丢失或格式不正确(在7.19.0版中增加)。 - **83:** 签发检查失败(在7.19.0版中增加)。 以上列举了CURL的各种用法和常见错误代码,通过了解这些内容,我们可以更加熟练地使用CURL进行各种网络数据传输操作。
- 粉丝: 5
- 资源: 24
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
- 3
前往页