请参阅此线程以供参考
如何使用nmap和Zenmap扫描以特定string开头的所有主机名?
在上面的线程中的答案之一使用下面的查询(我完全不记得该命令):
nmap -sL -oG – 192.168.0.0/24 | awk'$ 3〜/ ^(org / {print $ 2}'| nmap -iL -`
它扫描所有以org开头的主机名节点,并返回一个匹配节点列表。
它在Unix / Linux环境下效果很好,但是我需要一个Windows的等价物。 我不想在Windows上使用awk,sed或grep包。 我想保持一个标准,并使用PowerShell和/或Perl。
有没有一个等效的方式来构build这个查询使用PowerShell和/或Perl,以及nmap?
那个命令的Nmap部分应该是一样的。 要将awk命令转换为Perl,请使用:
perl -lane "print $F[1] if $F[2]=~/^\(org/"
(由于引用Windows cmd.exe和大多数* nix shell之间的差异,* nix shell应该使用单引号而不是双引号)
要在PowerShell中做到这一点,这应该工作(未testing):
%{ if ($_.Split()[2] -match "^\(org") { $_.Split()[1]; } }