while循环对齐列
|
你好
我编写了一个perl脚本,在其中将填充了ip和端口扫描的文本文件中的列存储到变量中。变量包含许多ip地址,端口,协议,状态和服务,现在我需要一个while循环,该循环将所有存储在ip变量中的ip \与其对应的端口协议和状态等进行匹配。所以:
192.168.3 45 tcp打开smtp
这是我的代码
$ip_address = `cat /cygdrive/c/Windows/System32/test11.txt |
grep \'Nmap scan report for\'`;
$state = `cat /cygdrive/c/Windows/System32/test11.txt | grep -v \'PORT\'|
grep -v \'filtered\'| grep -v \'latency\'| grep -v \'Nmap\' | grep -v \'Discovered\' |
grep -v \'Raw\' | grep -v \'SYN\' | grep -v \'DNS\'| grep -v \'Ping\' |
grep -v \'Scanning\' `;
$port = `cat /cygdrive/c/Windows/System32/test11.txt | grep -v \'Discovered\'|
grep -v \'Nmap\' | grep -v \'PORT\' | grep -v \'ports\'| grep -v \'Read\' |
grep -v \'Raw\'| grep -v \'Completed\'| grep -v \'DNS\' | grep -v \'hosts\' |
grep -v \'Ping\' | grep -v \'SYN\' | grep -v \'latency\' `;
$protocol = `cat /cygdrive/c/Windows/System32/test11.txt | grep -v \'Discovered\'|
grep -v \'Nmap\' | grep -v \'PORT\' | grep -v \'ports\'| grep -v \'Read\' |
grep -v \'Raw\' | grep -v \'Completed\'| grep -v \'DNS\' | grep -v \'hosts\' |
grep -v \'Ping\' | grep -v \'SYN\' | grep -v \'latency\' `;
{
$service = `cat /cygdrive/c/Windows/System32/test11.txt | grep -v \'Nmap\' |
grep-v \'Host\' | grep -v \'filtered\' | grep -v \'PORT\' | grep -v \'Raw\'|
grep -v \'Scanning\'| grep -v \'Completed\'| grep -v \'Ping\' |grep -v \'DNS\' |
grep -v \'Discovered\'| grep -v \'SYN\'`;
while($ip_address, $port, $protocol, $state, #service)
{
chomp ($ip_address, $port, $protocol, $state, #service);
print \"$ip_address, $port, $protocol, $state, #service\";
exit 0;
}
没有找到相关结果
已邀请:
2 个回复
盟犯涩沟都
之类的事情。但是对于此代码,我将做一个例外。您应该使用内置的
命令执行此任务。即数组和Perl的
运算符。这是我将开始重写此方法的方式。
镶骄册筷