文章目录
curl常用方式
curl -k https://wsfnk.com #允许不使用证书到SSL站点
设置用户身份代理 #伪装客户端身份为LT-browser
curl -A LT-browser https://wsfnk.com
伪造来源网址 #伪装<URL> 来源网址qq.com,跳转过来的链接
curl -e http://qq.com https://wsfnk.com
显示一次的http请求的通信过程
curl -V https://wsfnk.com
访问https不受信任的网站
curl --insecure https://wsfnk.com
仅显示http-head(http头部)
curl -I https://wsfnk.com
使用强制重定向 #curl默认不会启用跳转,本站没有开启http,所以他会自动强制跳转到 https://wsfnk.com
curl -L http://wsfnk.com
限速下载(下载速度最大不会超过1Mbit/s)
curl --limit-rate 1M -O http://www.gnu.org/software/gettext/manual/gettext.html
为CURL设置代理(指定代理主机和端口)
curl -x proxysever.test.com:3128 http://google.co.in
CURL授权
在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权
通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
curl -u username:password URL
curl -u username URL
Cookie相关
使用用户名和密码登录系统,并将cookie信息存储在当前目录的cookie文件中
-c 存储cookie到文件
curl -d"name=zhangsan&password=123" http://localhost:8080/login -c ./cookie
-b 携带cookie文件
curl http://localhost:8080/login -b ./cookie
模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆
curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同
curl -b ./cookies.txt –o URL
从FTP服务器下载文件
若在url中指定的是某个文件路径而非某个文件,CURL则会列出该目录下的所有文件而并非下载该目录下的所有文件
#列出public_html下的所有文件夹和文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
#下载xss.php文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
上传文件到FTP服务器
通过 -T 选项可将指定的本地文件上传到FTP服务器上
#将myfile.txt文件上传到服务器
curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com
#同时上传多个文件
curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com
#从标准输入获取内容保存到服务器指定的文件中
curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
Curl执行GET/POST/PUT/DELETE操作
curl -X PUT www.baidu.com
curl -X DELETE www.baidu.com
curl -X POST www.baidu.com
curl -X POST -d"data=123&key=456" http://localhost:8080/search -v
curl -X GET www.baidu.com
Curl上传文件
curl --form "fileupload=@filename.txt" http://hostname/resource
如何实现断点续传
如何进行下载资源
curl -o filename 'url' #具体示例见下(url需要用单引号引起来,防止特殊字符干扰)
curl -o CentOS-7.iso 'http://mirrors.163.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso'
当网络故障,中断下载后,如何实现,断点续传(#在刚才下载命令后面加上 -C - 并再次执行)
curl -o CentOS-7.iso 'http://mirrors.163.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso' -C -
完整性校验(将得到的校验码与官方的对比,相同则文件完整)
md5sum CentOS-7.iso
sha1sum CentOS-7.iso
curl支持如下几种方式的URL:
可以指定多个url,或者在花括号中指定url的多个部分。
http://site.{one,two,three}.com
可以用中括号指定数字或字母序列。
ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)
ftp://ftp.letters.com/file[a-z].txt
可以指定多个序列。
http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html
可以在命令行指定任意数量的url,curl会按指定顺序获取url的内容。
可以在一个范围内指定跳跃的步数。
http://www.numericals.com/file[1-100:10].txt
http://www.letters.com/file[a-z:2].txt
wget常用方式
#日志记录和输入文件参数
-o,-output-file=file:把记录写到file文件中
-a,-append-output=file:把记录追加到file文件中
-i,-input-file=file:从file读取url来下载
#下载参数
-bind-address=address:指定本地使用地址
-t,-tries=number:设置最大尝试连接次数
-c,-continue:接着下载没有下载完的文件
-O,-output-document=file:将下载内容写入到file文件中
-spider:不下载文件
-T,-timeout=sec:设置响应超时时间
-w,-wait=sec:两次尝试之间间隔时间
-limit-rate=rate:限制下载速率
-progress=type:设置进度条
#目录参数 及 其他参数
-P,-directory-prefix=prefix:将文件保存到指定目录
-b,-background:启动后转入后台执行
#HTTP参数
-http-user=user:设置http用户名
-http-passwd=pass:设置http密码
-U,-user-agent=agent:伪装代理
-no-http-keep-alive:关闭http活动链接,变成永久链接
-cookies=off:不使用cookies
-load-cookies=file:在开始会话前从file文件加载cookies
-save-cookies=file:在会话结束将cookies保存到file文件
#FTP参数
-passive-ftp:默认值,使用被动模式
-active-ftp:使用主动模式
#递归下载排除参数
-A,-accept=list:分号分割被下载扩展名的列表
-R,-reject=list:分号分割不被下载扩展名的列表
-D,-domains=list:分号分割被下载域的列表
-exclude-domains=list:分号分割不被下载域的列表
常用实例
下载单个文件
wget http://baidu.com/123.txt
下载一个目录
wget -p http://baidu.com/web-hook
断点续传
wget -tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz
后台下载,下载较大文件时我们可以这样做,这时会生成wget-log文件来保存下载进度
wget -b http://nginx.org/download/nginx-1.8.0.tar.gz
自动从多个链接下载文件
cat url_list.txt #先创建一个URL文件
http://nginx.org/download/nginx-1.8.0.tar.gz
http://nginx.org/download/nginx-1.6.3.tar.gz
wget -i url_list.txt
限制下载速度
wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz
登陆ftp下载文件
wget –ftp-user=user –ftp-password=pass ftp://ip/filenam
下载开启目录访问的所有文件,排除index.html,
wget -r --reject="index.html*" http://123.123.123.123
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论