curl用法

批量下载

模拟请求

获取服务器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

upload successful

使用代理

curl -x 114.115.140.25:3128 https://www.google.com

指定refer

对于验证refer的服务器,如防止倒链等可以指定refer
curl -e ‘http://www.baidu.comhttps://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
2
3
1.curl -D cookiename -d “user=name&pass=pass” https://www.xxx.com (通过口令获取cookie,并保存为文件)
2.cat cookie 验证下cookie
3.curl -b cookiename 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