curl 命令相关技巧
指定网卡并格式化输出
curl
命令支持使用 --interface
参数指定网卡进行请求,并可以使用 -w
参数进行格式化输出:
~# curl --interface eth2 https://www.baidu.com/ -s -o /dev/null -w '%{local_ip}\n%{remote_ip}\n'
上面就是输出 curl
命令使用的本地和远程 IP 地址。
用户认证
例如下载文件需要用户认证,可以增加 -u
参数指定用户名和密码:
~# curl -L -O --anyauth -u "test:password" "http://XXXX/yyy.zip"
上面指定了 --anyauth
参数,curl
命令会自动判断认证方式。
如果指定 --anyauth
参数不能正常工作,就可能需要手工指定认证方式:
--basic
--digest
--ntlm
--negotiate
URL globbing 问题
curl 请求地址中包含 {}[]
之类的字符时会默认启用 URL globbing 功能,此时可能存在问题:
~# curl -L -O "http://driverdl.lenovo.com.cn/think/download/driver/9337/Intel7265wlan[jhwg07ww].exe"
curl: (3) [globbing] bad range in column 72
需要增加 -g
或 -globoff
参数关闭 URL globbing parser 功能才能正常下载。