Назад | Перейти на главную страницу

Требуется эквивалент команды с nmap, awk и grep для машин Windows с PowerShell и / или Perl

Пожалуйста, посмотрите эту ветку для справки

Как я могу сканировать с помощью 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]; } }