Пожалуйста, посмотрите эту ветку для справки
Как я могу сканировать с помощью nmap и Zenmap все имена хостов, начинающиеся с определенной строки?
Один из ответов в ветке выше использует следующий запрос (я не беру на себя ответственность за эту команду):
nmap -sL -oG - 192.168.0.0/24 | awk '$ 3 ~ / ^ (org / {print $ 2}' | nmap -iL -`
Он сканирует все узлы на предмет имен хостов, начинающихся с орг и возвращает список совпадающих узлов.
Он отлично работает в среде Unix / Linux, но мне нужен эквивалент для Windows. Я бы предпочел не использовать пакеты awk, sed или grep для Windows. Я хотел бы поддерживать стандарт и использовать PowerShell и / или Perl.
Есть ли эквивалентный способ создания этого запроса с использованием PowerShell и / или Perl вместе с nmap?
Части этой команды Nmap должны работать одинаково. Чтобы преобразовать awk
для Perl используйте:
perl -lane "print $F[1] if $F[2]=~/^\(org/"
(Из-за различий в кавычках между Windows cmd.exe и большинством * nix оболочек, * nix shells должны использовать одинарные кавычки вместо двойных)
Чтобы сделать то же самое в PowerShell, это должно работать (не проверено):
%{ if ($_.Split()[2] -match "^\(org") { $_.Split()[1]; } }