curl命令使用范例

curl常用参数:

参数说明
-A/–user-agent定义用户代理字符串
-H/–header自定义header头信息
-i/–include输出时包括protocol头信息
-I/–head只显示请求的头信息
-o/–output把输出写到该文件中
-s/–silent静默模式
-w/–write-out [format]在一次完整且成功的操作后输出指定格式的内容到标准输出
-X/–request指定请求方式
-u/–user设置服务器的用户和密码
-T/–upload-file上传文件
-l/–list-only列出ftp目录下的文件名称
–limit-rate设置传输速度
-m/–max-time设置最大传输时间

常用范例(纯shell命令):

  • 伪造UA绑host请求:
    1
    curl --user-agent "curl-test-agent" -H "Host:www.lengyuewusheng.com" -I "http://10.0.0.1/index.php"
  • 伪造X-Real-IP:
    1
    curl -H "X-Real-IP:1.1.1.1" -H "Host:www.lengyuwusheng.com" "http://10.0.0.1/index.php"
  • 获取请求的状态码字符串
    1
    curl -o /dev/null -s -w "%{http_code}\n" -H "Host:www.lengyuewusheng.com" "http://10.0.0.1/index.php" 
  • 向服务器端POST数据
    1
    curl -X POST -d "a=1&b=2&c=3" "http://www.lengyuewusheng.com"
  • 指定请求的超时时间
    1
    curl --connect-timeout 5 -m 90 -o /dev/null -s -w "%{http_code}" "http://www.lengyuewusheng.com"
  • 通过curl向ftp服务器上传文件
    1
    2
    curl -u "${USER}:${PASSWD}" -T "${DATADIR}/${FILE}" "ftp://${FTPSERVER}"
    # eg: curl -u "admin:123456" -T "/tmp/logs/test.log" "ftp://10.0.0.1"