linux curl

简介:

​ curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;
  curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传...。

1.语法:

curl [options] [URL...]

2.curl 命令参数详解:

​ 由于linux curl功能十分强大,所以命令参数十分多,下表只是部分参数,更多参数请运行“man curl”命令查看。

调试类

-v, --verbose                          输出信息
-q, --disable                          在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
-K, --config FILE                      指定配置文件
-L, --location                         跟踪重定向 (H)

CLI显示设置

数据传输类

-X, --request [GET|POST|PUT|DELETE|…]  使用指定的 http method 例如 -X POST
-H, --header <header>                  设定 request里的header 例如 -H "Content-Type: application/json"
-e, --referer                          设定 referer (H)
-d, --data <data>                      设定 http body 默认使用 content-type application/x-www-form-urlencoded (H)
    --data-raw <data>                  ASCII 编码 HTTP POST 数据 (H)
    --data-binary <data>               binary 编码 HTTP POST 数据 (H)
    --data-urlencode <data>            url 编码 HTTP POST 数据 (H)
-G, --get                              使用 HTTP GET 方法发送 -d 数据 (H)
-F, --form <name=string>               模拟 HTTP 表单数据提交 multipart POST (H)
    --form-string <name=string>        模拟 HTTP 表单数据提交 (H)
-u, --user <user:password>             使用帐户,密码 例如 admin:password
-b, --cookie <data>                    cookie 文件 (H)
-j, --junk-session-cookies             读取文件中但忽略会话cookie (H)
-A, --user-agent                       user-agent设置 (H)

传输设置

-C, --continue-at OFFSET               断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT]   在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD]       代理用户名及密码

文件操作

-C, --continue-at OFFSET               断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT]   在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD]       代理用户名及密码

输出设置

-o, --output <file>                    将输出写入文件,而非 stdout
-O, --remote-name                      将输出写入远程文件
-D, --dump-header <file>               将头信息写入指定的文件
-c, --cookie-jar <file>                操作结束后,要写入 Cookies 的文件位置文件位置

3.常用实例:

访问一个网页并输出详细信息:

curl -v http://www.baidu.com

抓取页秒到一个为文件中

curl -o home.html http://www.baidu.com

用 -O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西

curl -O http://www.mydomain.com/linux/index.html

模拟用户登录

curl -v --user Admin:zabbix http://172.16.18.204/zabbix/index.php

断点续传

curl -C -O http://www.sina.com.cn

伪造来源地址,有的网站会判断,请求来源地址-e

curl -e http://localhost http://www.sina.com.cn

当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理

curl -x 10.10.90.83:80 -o home.html http://www.sina.com.cn

用的时候,把他们cat一下就OK了,cat img.part* >img.jpg

不显示下载进度信息 -s

curl -s -o aaa.jpg

显示下载进度条

curl -# -O http://www.mydomain.com/linux/25002_3.html

通过ftp下载文件;上传

posted @ 2021-03-05 10:46  (◓3◒)  阅读(96)  评论(0)    收藏  举报