Grepping несколько строк от Nmap производится

От info regex:

3.2 The Match-any-character Operator (`.')
==========================================

This operator matches any single printing or nonprinting character
except it won't match a:

 newline
      if the syntax bit `RE_DOT_NEWLINE' isn't set.

 null
      if the syntax bit `RE_DOT_NOT_NULL' is set.
2
07.06.2012, 15:36
3 ответа

Это не ясно для меня, Вы, строки потребности, содержащие только, сообщают или открываются? Если так, используйте: grep :

nmap | grep -E "report|open"

sed :

nmap | sed '/report\|open/!d'

если отчет и открытый вместе

grep :

nmap | grep report | grep open

sed :

nmap | sed '/report.*open\|open.*report/!d'
4
27.01.2020, 21:55

Вместо того, чтобы выполнять последующую обработку с grep, попытайтесь передать --open опция к Nmap. Это скроет все закрытые или фильтрованные порты. Можно использовать -oG или -oA опции произвести "grepable" результаты, также. Вот пример, который делает то, что я думаю, что Вы ищете:

nmap -p 25 --open -oA smtp-servers-%y%m%d 192.168.15.0/24

Результаты были бы в smtp-servers-20120607.nmap, smtp-servers-20120607.gnmap, и smtp-servers-20120607.xml. Можно добраться, IP-адреса для открывают серверы SMTP как так:

awk '/\<25/open/tcp/ {print $2}' smtp-servers-*.gnmap

При реальной необходимости в этом всем в одном конвейере Вы могли бы сделать это как так:

nmap -p 25 --open -oG - 192.168.15.0/24 | awk '/\<25/open/tcp/ {print $2}'
2
27.01.2020, 21:55

Вам нужен канал обоим grep вызовы:

nmap ... | grep report | grep open

Или, так как Вы отметили с awk, просто информативно:

nmap ... | awk '/report/ && /open/'

И sed:

nmap ... | sed '/report/!d;/open/!d'
0
27.01.2020, 21:55
  • 1
    Ваш sed вариант перестанет работать. это удалит и отчет и откроет строки, очевидно, потому что открытый не очень сообщает и наоборот. Также grep | grep и grep -e -e не подобны. Сначала каждый будет соответствовать только строкам, содержащим отчет, и открытый, второй очень или только сообщит, что любой только открывает любого оба вместе. –  rush 07.06.2012, 15:34
  • 2
    Все результаты grep операторов все еще отвечают ударом на удар IP-адресам, которые не имеют порта 25 открытыми. Идеально я хотел бы, чтобы оператор только отобразил дюйм/с с открытым портом 25 ничто иное. Но Ваши предложения намного ближе к моему намерению.Спасибо! –  John Smith 07.06.2012, 15:42
  • 3
    @rush Вы правы относительно grep -e -e, но для sed, как я понимаю, OP хочет и отчет и открытый на строке, sed сделает это правильно. –  Kevin 07.06.2012, 16:01

Теги

Похожие вопросы