批量下载
- -O表示下载后的文件名和服务端的文件名一样
curl -O http://45.77.10.219/2018-02-2[6-8].html - -o指定下载后的文件名
curl -o “#1.html” http://45.77.10.219/2018-02-2[6-8].html
(#1表示可变参数,该命令结果为6.html,7.html,8.html)
模拟请求
获取服务器http头信息
curl -i https://www.baidu.com
添加User-Agent
curl -i -A “Mazilla/4.0 (compatible;MSIE 6.0;Windows NT5.0)” https://www.baidu.com
使用代理
curl -x 114.115.140.25:3128 https://www.google.com
指定refer
对于验证refer的服务器,如防止倒链等可以指定refer
curl -e ‘http://www.baidu.com‘ https://map.baidu.com
设置访问域名的主机头突破服务器端限制
在某些情况下服务器可能禁止通过IP直接访问,或者与需要通特定的域名、主机头才能访问你需要访问的内容,但是此域名DNS还没有解析,或者DNS解析的域名是多个IP,,不能到你需要的IP,你需要让它解析成你需要的特定IP。
curl –header “Host:www.freebuf.com” http://127.0.0.1
在较新版本的curl还支持一个为例子显示下:–resolve的选项,可以直接用来指定对url的解析
curl –resolve www.freebuf.com:80:127.0.0.1 http://www.freebuf.com
设置POST表单实现web认证
找到登录页的表单,获取用户名和密码的表单值,例如为user何pass
curl -d “user=name&pass=pass” 登陆URL
带cookie访问
1 | 1.curl -D cookiename -d “user=name&pass=pass” https://www.xxx.com (通过口令获取cookie,并保存为文件) |
文件上传
例如对于如下表单:1
curl -F "file=@local_a.txt;filename=testaaabcd.txt" http://www.a.com/file
上传文件,local_a.txt为本地路径,文件名称为testaaabcd.txt