2011-03-31 79 views
0

你好我已经写了一个perl脚本,它需要端口扫描,我已经保存在文本文件中,并将它们放到Microsoft Excel中。现在,我的老板就是了输出在Excel CSV格式如格式化Excel文件

 Server, port, protocol, state, service, 
69.25.194.2, 25, tcp, open, smtp

我想有所有IP在A列中,B列等端口。我想我可以使用匹配的正则表达式,但我是新来的perl,并有麻烦这样做你们可以帮助我。

这里是我的代码,这个输出的文本文件到Excel我可以修改这个格式,我想它的格式的Excel文件。

$input = `Cat /cygdrive/c/Windows/System32/test11.txt | grep -v 'SYN Stealth'`; 
chomp input; 
$output =" /cygdrive/c/Users/bpaul/Desktop/194.csv "; 
if (! -e "$output") 
{ 
`touch $output`; 
} 
open (OUTPUTFILE, ">$output") || die "Can't Open file $output"; 
print OUTPUTFILE "$input\n"; 
close (OUTPUTFILE); 

这里是我的一块文件

 
Nmap scan report for 69.25.194.2 Host is up (0.072s latency). 
Not shown: 9992 filtered ports 
PORT STATE SERVICE 
25/tcp open smtp 
80/tcp open http 
82/tcp open xfer 
443/tcp open 
https 4443/tcp closed 
pharos 5666/tcp closed 
nrpe 8080/tcp closed 
http-proxy 9443/tcp closed tungsten-https 
+1

您在这里使用反引号很奇怪;一方面,在打开一个不存在的文件进行覆盖之前,完全没有必要“触摸”一个不存在的文件;它会自动创建。而'grep'不需要任何东西传递给它;它知道如何从文件中读取数据(而且你几乎可以肯定会从perl本身进行grepping)。 – geoffspear 2011-03-31 15:25:23

回答

2

NMap有一个可输入grep的输出格式,它将在一行中输出每个主机,并提供以逗号和斜杠分隔的开放端口列表。在命令行中使用nmap -oG或检查NMap手册页以获取更多输出类型。 This page看起来像是一个很好的例子,一旦你得到它就操纵输出。