端口扫描(TCP)

netken 2002-03-05 07:26:14
测试了一下速度和 C 几乎一样有时候甚至更快
usage: port_scan.pl localhost 1 65535

#!/usr/bin/perl
# NetKen.

if ( @ARGV != 3 ) {
print "\nUsage: port_scan.pl <IP Address> <Start Port> <End Port>\n\n";
exit(0);
}

($SERVER,$PORT_START,$PORT_END) = @ARGV;

$PACKIT = 'S n C4 x8';
$AF_INET = 2;
$SOCK_STR = 1;
$DEF_PROTO=0;

$PORT = $PORT_START;

my($name,$aliases,$addrtype,$len,@addrs) = gethostbyname($SERVER);

@IPaddr = unpack('C4',$addrs[0]);

print "Host: $name\nIP : $IPaddr[0].$IPaddr[1].$IPaddr[2].$IPaddr[3]\nAlias:$aliases , Address type: $addrtype , Length:$len\n";

while ( $PORT++ < $PORT_END ) {
$that=pack($PACKIT,$AF_INET,$PORT,@IPaddr);
$socket = socket(CSOCK,$AF_INET,$SOCK_STR,$DEF_PROTO) || print "$0: Could not Create Socket\n";
$result = connect(CSOCK,$that);
if($result == 1) {
print "\nOpen $PORT\n";
} else {
print "\b.";
}
close(CSOCK);
}

print "\n";

exit(0);


...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengxx 2002-03-09
  • 打赏
  • 举报
回复
to tr0jans(大包子):
程序在win2k下是完全没有问题的,你应该是把
usage: port_scan.pl localhost 1 65535
这句也搞上去了吧~!?这句不属于程序的,只是小肯告诉
我们程序的用法.

to netken (小肯) :
不知道是什么问题,好像用perl写的小程序总是比较慢,并不是
说程序本身运行慢,可能是因为算法(不知如何设置多线程),
总是做不到好像superscan那样快速的~~我前几天用net::ftp
跟net::pop3写了个小程序,已经在论坛里贴了,
请你帮忙看看,~~谢谢~~
beckheng 2002-03-06
  • 打赏
  • 举报
回复
小肯的第一句是這個程序的用法啊。
jinandsun 2002-03-06
  • 打赏
  • 举报
回复
在WIN下路径变为#!c:\perl.exe
tr0jans 2002-03-06
  • 打赏
  • 举报
回复
小肯
你这个是在win下的还是linux下的?
我在win2k下运行出错
Number found where operator expected at E:\scan.pl line 1, near "1 65535"
(Missing operator before 65535?)
syntax error at E:\scan.pl line 1, near "1 65535"
syntax error at E:\scan.pl line 9, near "}"
Execution of E:\scan.pl aborted due to compilation errors.

2,203

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧