Perl:一段扫描url的代码,请教

Perl:一段扫描url的代码,请教

不明白其中的IO::Socket模块是如何发送包的?

源代码如下
#!/usr/bin/perl

use strict;
use IO::Socket;

print "---------------------------------------------------------------------\n";
print "\tCode By [kingwrcy]\tMSN:kingwrcy\@qq.com\n";
print "---------------------------------------------------------------------\n";
if (@ARGV != 1) {
print "aramter is error.\n";
exit;
}

my $address = inet_ntoa(inet_aton($ARGV[0])) or die "Can't resolve host..\n";

open(MYFILE,"c:\\1.TXT") or die "can't read file\n";

my @allDir = <MYFILE>;

my $count = 0;

foreach my $myDir (@allDir) {
chop($myDir);
my $sendBuf = "GET $myDir HTTP/1.1\n".
"Host: $ARGV[0]\n\n\n";
my $socket = IO::Socket::INET->new(PeerAddr => $address,
PeerPort => 80,
Proto => "tcp",
Type => SOCK_STREAM)
or die "Couldn't connect to $ARGV[0] : $@\n";
print $socket $sendBuf;
my $buf = <$socket>;
if($buf =~/\b200\b/ or $buf=~/\b401\b/){
print "ExistARGV[0]$myDir\n";
$count++;
}
close $socket;
}

close MYFILE;
print "\tAll Done! Find $count directory...Good Luck.\n";
[/code]
这其中的
my $socket = IO::Socket::INET->new(PeerAddr => $address,
以及
my $sendBuf = "GET $myDir HTTP/1.1\n".
my $buf = <$socket>;
都是如何工作 求教!
发送是这个

[Copy to clipboard] [ - ]
CODE:
print $socket $sendBuf;



QUOTE:
原帖由 Tiger_cn 于 2008-5-12 22:09 发表
这其中的
my $socket = IO::Socket::INET->new(PeerAddr => $address,
以及
my $sendBuf = "GET $myDir HTTP/1.1\n".
my $buf = ;
都是如何工作 求教!

有一个模拟上面行为的方法..
找台linux/unix...
然後用
telnet ip_address port
例如
telnet 10.1.1.1 80

连上後..输入
GET /index.html 按两下enter..

以上所有动作...等於你代码中所有的动作........
你可以先研究看看HTTP与Socket...
我知道等于我代码中的所有内容 但是不知道其中的对应关系


QUOTE:
原帖由 Tiger_cn 于 2008-5-13 20:37 发表
我知道等于我代码中的所有内容 但是不知道其中的对应关系

在这里等别人告诉你...
为甚麽不先试着自己去了解一下...真的不懂再上来问...

都已经跟你说去看一下什麽是Socket..与HTTP protocol...

难道要写一大篇跟你解释吗?
我只能说,Perl 的临时用户太多了。
很多人都缺乏基础知识。