Is linode true unbeatable?

2013-03-10 19:18:31 +08:00
 Tianpu
我开始测试一个数据抓取的东西,不是什么不合法或者不合理的,只是不想数据源知道我的源IP,然后看到linode 2T的带宽,用它建了个gate

本质上是个代理,进出流量是对等的

每分钟大约抓取150个页面,每个页面大约50K,由于不想改原先的东西,所有抓取都没有使用gzip

现在放上去一半了 进入带宽平均800K/s 最大3.6M


不知道会不会封我呀
1558 次点击
所在节点    Linode
11 条回复
webflier
2013-03-10 20:38:10 +08:00
从你的需求来看,digitalocean更适合你,比linode便宜,老用户流量不限,新用户每月1t
Tianpu
2013-03-10 22:12:27 +08:00
@webflier 不用啊 本来我是想买几个$5的VPS跑的 LINODE很快啊

这会平均带宽有2M了 今天用3G流量了

过几天我继续反馈
webflier
2013-03-10 22:29:14 +08:00
@Tianpu digitalocean 估计没有linode大气,流量突然变大有可能会限你速.但是DO是真心便宜,才5刀,linode最便宜得20刀呢
Tianpu
2013-03-12 00:26:25 +08:00
@webflier 到现在用了30多G流量了 还没全跑 在观察参数

流量肯定顶不住 我估计需要6T左右

待会得加上gzip了
Livid
2013-03-12 00:28:06 +08:00
iWeekly 的后台服务器最初跑在 Linode 上的时候,差不多 30M/s,那个时候几乎每个月都会超流量。在没有攻击的情况下,Linode 是可以用的。
siw
2013-03-12 00:33:57 +08:00
@Tianpu
请问, 对方不知道你的IP 但知道Linode IP
而Linode知道你的
这~ 分散风险吗?
Tianpu
2013-03-12 04:39:30 +08:00
@webflier @siw 搜索蜘蛛抓页面 无所谓啦 我user-agent都用bing的 抓取器终于支持gzip了 只考虑了chunked gzip 还有什么都没有的情况 暂时都能正常出人类可见文本

<code>
<?php
function dechunked($str){
$r = $t = '';
$t = $str;
while(trim($t)){
if(!preg_match('/^([\da-fA-F]+)[^\r\n]*\r\n/sm',$t,$m)) die('seem to be a chunked message');
$l = hexdec(trim($m[1]));
$c = strlen($m[0]);
$r.= substr($t,$c,$l);
$t = substr($t,$c+$l+2);
}
return $r;
}
function open($url){
$body = $head = $resp = '';
$temp = $temq = array();
$temp = parse_url($url);
$host = $temp['host'];
$file = $temp['path'];
if($temp['query']!='') $file = $file.'?'.$temp['query'];
$fp = fsockopen($host, 80, $errno, $errstr, 15);
if(!$fp) die('{gate_closed}');
else{
$head.= "GET $file HTTP/1.1\r\n";
$head.= "Host: $host\r\n";
$head.= "User-Agent: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)\r\n";
$head.= "Referer: $url\r\n";
$head.= "Accept-Encoding: gzip,deflate\r\n";
$head.= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$head.= "Connection: Close\r\n\r\n";
fwrite($fp, $head);
while(!feof($fp)){
$resp.= fgets($fp,4096);
}
fclose($fp);
}
if(empty($resp)) die('{gate_closed}');
$temq = explode("\r\n\r\n",$resp,2);
print_r($head);
print_r($temq[0]);
if(stristr($temq[0],'Transfer-Encoding: chunked')) $temq[1] = dechunked($temq[1]);
if(stristr($temq[0],'Content-Encoding: gzip')){
$body = gzinflate(substr($temq[1],10));
}
else $body = $temq[1];
return $body;
}
if(!empty($_GET['url'])) echo open($_GET['url']);
?>
</code>
Tianpu
2013-03-12 04:40:42 +08:00
@Livid 嗯 我的稳定跑到了10M 看流量是不够用 所以造了上面一楼的全部压缩传输吧
Livid
2013-03-12 04:45:22 +08:00
@Tianpu 如果你是抓别人的数据,那么理论上来说,主要是流入数据吧?

流入数据在 Linode 是免费的。
Tianpu
2013-03-12 05:34:06 +08:00
@Livid 我把它当中转的代理使了 流入流出是对等的
webflier
2013-03-12 09:45:36 +08:00
@Tianpu 大家都喜欢把useragent设成bing哈,我的wordpress站老被试图暴库,useragent就是bing,哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62498

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX