|   
 UID1 威望1240 点 金钱24019 金币 点卡317 点 
 | 
1#
 发表于 2005-8-25 20:00 
 | 只看该作者 
 一个支持HTTP续传下载的PERL程序
| 作者:小歪歪 email: annysun@163.net
 日期:2000-07-10 15:22:43
 ——————以下内容由Cnangel在2005年08月25日 08:01pm时添加———————复制代码#!/usr/bin/perl use IO::Socket; if ($#ARGV <= 0) {   print STDERR "usage: getright <URL> <FILENAME>\n\n";   print STDERR "     <URL>: eg. http://www.server.dom:port/path/file.ext\n";   print STDERR "<FILENAME>: eg. filename.ext\n";   exit(0); } else {   open(FILE, "+>>".$ARGV[1]) or die "Cannot open $ARGV[1] for append: $!";   ($length = sysseek(FILE,0,2)) =~ s!.*([0-9]+).*!$1!g;   print STDERR "Attempting to resume $ARGV[1] from byte: $length\n"; } if ($ARGV[0] =~ m!^ (?:http://)? (.*?) (?:\:([0-9]+))? (/.*)$!x)   { ($server,$port,$path) = ($1, $2 || 80, $3); } print "[$server] [$port] [$path]\n"; $socket = IO::Socket::INET->new(PeerAddr => $server,                                 PeerPort => $port,                                 Proto    => ';tcp';,                                 Type     => SOCK_STREAM) or die "Cannot connect: $!"; print $socket "GET $path HTTP/1.0\n"; print $socket "Host: $server\n"; print $socket "Range: bytes=$length-\n"; print $socket "Connection: close\n\n"; if (!(($reply = <$socket>) =~ /HTTP\/1.[01] 206 Partial Content/)) {   $reply =~ s!(.*)\r\n!$1!;   print STDERR "Failed [$reply]\n";   print STDERR "Invalid URL/Unrecognized Reply/Resume Not Supported.\n";   close($socket); exit(0); } else {   print STDERR "Received valid HTTP reply.\n"; } while (($mime = <$socket>) =~ /\w+: /) {   if ($mime =~ /Content\-Range\:\sbytes\s([0-9]+)\-([0-9]+)\/([0-9]+)/)     { ($start,$finish,$filesize) = ($1, $2, $3); }   if ($mime =~ /Content\-Length\:\s([0-9]+)/) { $total = $1; } } print STDERR "Receiving data: "; while ($data = <$socket>) {   $recieved += length($data);   $percentage= int((($start+$recieved) / $filesize) * 100);   print STDERR $percentage."%"."\b"x(length($percentage)+1);   print FILE $data; } print STDERR "100%\n"; close(FILE); close($socket); # Example HTTP return header: # #          HTTP/1.1 206 Partial content #          Date: Wed, 15 Nov 1995 06:25:24 GMT #          Last-modified: Wed, 15 Nov 1995 04:58:08 GMT #          Content-Range: bytes 21010-47021/47022 #          Content-Length: 26012 #          Content-Type: image/gif 
 非常好!不说什么了
 | 
 
| 我是一个呼吸着现在的空气而生活在过去的人
 这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
 我已习惯了孤独,爱上孤独
 他让我看清了自我,还原了自我
 让我再静静的沉思中得到快乐和满足
 再孤独的世界里我一遍又一遍
 不厌其烦的改写着自己的过去
 延伸到现在与未来
 然而那只是泡沫般的美梦
 产生的时刻又伴随着破灭的到来
 在灰飞烟灭的瞬间我看到的是过程的美丽
 而不是结果的悲哀。。。
 
 |  |