Chinaunix首页 | 论坛 | 博客
  • 博客访问: 469677
  • 博文数量: 121
  • 博客积分: 6585
  • 博客等级: 准将
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-01 17:18
文章分类

全部博文(121)

文章存档

2010年(11)

2009年(62)

2008年(48)

分类: LINUX

2009-02-26 23:37:10

功能强大的curl


1) 通过curl直接访问sina网站
curl http://www.sina.com.cn

2) 你也可以把sina保存期来
curl http://www.sina.com > sina  或 curl -o sina http://www.sina.com.cn

3) 同时可以通过代理来访问网页
curl -x 10.54.38.18:8080 -o sina.html http://www.sina.com.cn

4) 可以把cookies存放到一个文件里
curl -x 10.54.38.18:8080 -o sina.html -D cookie002.txt  http://www.sina.com.cn

5) 下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,很多网站都是靠监视你的cookie信息,
来判断你是不是不按规矩访问他们的网站的。
这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b
curl -x 10.54.38.18:8080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.sina.com.cn

6)有些讨厌的网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本~~~~
哪里有时间为了它去找这些怪异的浏览器呢!?

好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 10.54.38.18:8080 -o sina.html -D cookie0001.txt http://www.sina.com.cn

7)
另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的referer地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不 是首页的地址,就可以断定那是个盗连了~~~~~

讨厌讨厌~~~我就是要盗连~~~~~!!
幸好curl给我们提供了设定referer的option: -e
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 10.54.38.18:8080 -e "www.sina.com.cn" -o page.html -D cookie0001.txt http://login.sina.com.cn


8)ftp 下载

curl -u name:passwd ftp://ip:port/path/file
或者大家熟悉的
curl ftp://name:passwd@ip:port/path/file

10)说完下载说上传
上传的option是 -T

比如我们向ftp传一个文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/

当然,向http服务器上传文件也可以
比如 curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi
注意,这时候,使用的协议是HTTP的PUT method

刚才说到PUT,嘿嘿,自然让老服想起来了其他几种methos还没讲呢!
GET和POST都不能忘哦。

http提交一个表单,比较常用的是POST模式和GET模式

GET模式什么option都不用,只需要把变量写在url里面就可以了
比如:
curl http://www.sina.com/login.cgi?user=nickwolfe&password=12345

而POST模式的option则是 -d

比如,curl -d "user=nickwolfe&password=12345" http://www.sina.com/login.cgi
就相当于向这个站点发出一次登陆申请~~~~~

到底该用GET模式还是POST模式,要看对面服务器的程序设定。

一点需要注意的是,POST模式下的文件上的文件上传,比如

http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">



这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi

阅读(954) | 评论(0) | 转发(0) |
0

上一篇:curl 介绍

下一篇:如果有一天

给主人留下些什么吧!~~