热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>编程开发>Perl>

[perl]支持网段端口扫描

来源: 作者: 时间:2008-05-16 Tag: 点击:


#Is_Host_Port_Open or Close

sub Is_pt_open{
for(my $tmp_port=$Start_pt;$tmp_port <= $End_pt;$tmp_port++){
my $mysock = IO::Socket::INET->new(PeerAddr => $_[0],
PeerPort => $tmp_port,
Proto => 'tcp') or next;
printf "The host %-15s Port %-8s is opening!\n",$_[0],$tmp_port;
$mysock->close;
}
}


#Is_ip_address_correct or Incorrect

sub Is_ip_correct{
foreach my $num(@_){
next if($num > 0 && $num < 255);
print "The Ip Address is not correct,Check your file!\n";
exit;

}
}

#Main Function


if(! defined $ARGV[0]){
&Usage();
exit 0;
}

open r_ip_addr,"$ARGV[0]" or die "open $ARGV[0] error!\n";

while(<r_ip_addr>){
chomp;
#Ip_Network_Range

if(&Is_ip_nk($_)){
foreach my $Ip_nt_addr(@ip_net){
#check a host for reachability

next if(!&Is_Host_Alive($Ip_nt_addr));
&Is_pt_open($Ip_nt_addr);
}
next;
}

#Single_IpAddress

if(!/(^\d+)\.(\d+)\.(\d+)\.(\d+)/){
&Usage();
exit 0;
}else{
&Is_ip_correct($1,$2,$3,$4);
my $Ip_addr = $_;

#check a host for reachability

next if(!&Is_Host_Alive($Ip_addr));

#check the status of a host's port:close or open

&Is_pt_open($Ip_addr);
}
}



上一篇:perl中访问oracle10g入门
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表