Skip to main content

Gordon “Fyodor” Lyon "Nmap Network Scanning" book Free beta release

Если вдруг кто еще не знает, то Фёдор (хоть убейте но единственные ассоциации которые у меня вызывает это имя - это "Дядя", "Матроскин" и "Простоквашино " =) ) выложил уже довольно давно в онлайн доступ pre-release бета версию своей книги "Nmap Network Scanning", официальный запуск которой планируется в этом месяце. Онлайн версия не полная, однако тот обьем материала, который доступен уже превышает все то, что было опубликовано прежде (не, ну может конечно я и перегнул, но все же ...). Онлайн версия это кончено хорошо, но интернет не всегда есть, да и хорошо было бы иметь локальную копию - так, на всякий случай. За сим:

wget -r -l0 -np -k -p http://nmap.org/book/

-r - рекурсивная загрузка
-l0 - бесконечная вложенность ссылок
-np - no parent, т.е. не загружать файлы выше базового адреса
-k - конвертировать ссылки для удобства оффлайн просмотра
-p - загружать все файлы, которые необходимы для отображения html страниц

и не забываем поставить trailing slash в конце адреса.

После окончания загрузки получаем следующую структуру директорий

`-- nmap.org
|-- book
|   |-- images
|   |   |-- zenmap-icons
|-- book-icons
|-- css
|-- images
`-- zenmap
`-- images

Для того, чтобы сделать локальную копию книги более удобочитаемой я написал пару скриптов, которые "вырезают" из файлов все лишнее. Первый скрипт на ruby режет все "лишнее" в файле, точнее не режет, а выводит все "нужное" в консоль


parse.rb


input = ARGF.read

# write the contets of head tag with opening html tag
start_pos = input.index /<html>/
end_pos = input.index /<[bB][oO][dD][yY]/
puts input[start_pos..end_pos-1]

# write opening body tag
puts "<body>"

start_pos = input.index /<div class="navheader">/
end_pos = input.index /<div class="navfooter">/
puts input[start_pos..end_pos-1]

# write closing body and html tags
puts "</body></html>"



Второй скрипт на shell, который собственно выполняет предыдущий скрипт для каждого html файла в директории nmap.org/book

process-dir.sh


#!/bin/sh

mv toc.html index.html

file_list=`ls | grep html`

for file in $file_list
do
echo ">>>>>processing file " $file
ruby parse.rb $file > $file"_tmp"
mv $file"_tmp" $file
done


Собственно далее копируем оба скрипта в nmap.org/book и делаем в консоли sh process-dir.sh.

P.S. Если кто вдруг подскажет мне quick&dirty way как сконвертировать все это добро в PDF - буду премного благодарен ;-)

Comments

  1. Хм. Почему не скинуть это все в какой-нибудь файл и не прожевать pdflatex?

    ReplyDelete
  2. ну, во первых, файлы перелинкованы между собой - возникает проблема конвертации ссылок. а во вторых - если мне не изменяет память, то pdflatex компилирует TeX разметку в PDF.

    ReplyDelete
  3. file_list=`ls | grep html`

    for file in $file_list

    ->

    for file in `ls *.html`

    ReplyDelete

Post a Comment

СООБЩЕНИЕ СПАМЕРАМ: прежде чем пытаться оставить ссылку на свой ресурс в комментарии, прошу обратить внимание на тег nofollow, которым они помечены и зря не терять ни свое ни мое время. А будете упорствовать еще и noindex поставлю