专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>perl>

perl脚本之tcp端口扫描程序

百度收藏 QQ搜藏

一个简单对一台机器进行tcp端口扫描的脚本,涉及perl socket编程。

perl代码如下:

#!/usr/bin/perl

$|=1;
$tghost = shift || $ENV{"HOSTNAME"};
$maxprt = shift || 1024;

$AF_INET=2;
$SOCK_STREAM=1;
$sockaddr='S n a4 x8';

($name,$aliases,$proto)=getprotobyname('tcp');
foreach $port (1 .. $maxprt)
{
 ($name,$aliases,$type,$len,$thataddr)=gethostbyname($tghost);
 $this=pack($sockaddr,$AF_INET,0,$thisaddr);
 $that=pack($sockaddr,$AF_INET,$port,$thataddr);
 
 die "unknown host $tghost\n" if($thataddr eq "");

 socket(S,$AF_INET,$SOCK_STREAM,$proto) or die $!;
 bind(S,$this) or die $!; 

 if(connect(S,$that))
 {
  ($srv_name, $srv_aliases, undef, undef)=getservbyport($port,'tcp');

  printf("%5d %s\n", $port, $srv_name || "unknown serv");

  close(S);
 }

}

exit 0;

上一篇:perl脚本监控windows主机 下一篇:怎样提高perl程序的运行速度

power by soyo123 2007-2008