About

NetView 2.90 LE

HTML HELP

Задумывался, как программа-заменитель Сетевого Окружения Windows, позволяющая использовать помимо стандартных возможностей Windows, сбора информации о сетевых ресурсах, так же отдельный файл-хостлист, в котором бы хранились имена всех компьютеров в сети и их IP адреса, а кроме того, проводит регулярные перепроверки списка компьютеров путем их пингования или соединения на указанный порт. В дальнейшем программа солидно выросла и в высоту, и в ширину, и в глубину, и получилось нижеописанное...

Фичи:

Использование файла для хранения информации о сети и проверки состояния хостов пингов/сканированием/ARP запросами позволяет видеть ВСЕ компьютеры сети, даже если в сети нету либо есть но кривой browse master. При соответствующих настройках(отключение опроса сети при старте) запуск программы происходит очень быстро. При включенном опросе при запуске в список автоматически добавляются новые компьютеры.

Поддержка плагинов. Как вывод - практически неограниченные возможности расширения функциональности.

Имеется API для обращения к данным NetView из сторонних программ. Кстати NetView позволяет другим программам удобно хранить абсолютно любую информацию о хостах благодаря особой организации данных.

Может работать как сервис в среде Windows 2000/XP/2003. При этом не требуется никаких дополнительных программ для установки его сервисом - эта возможность включается в общих настройках самого NetView.

Проверка состояния может осуществляться как его пингованием, так и попыткой соединения на заданные порты(до 8ми штук, по умолчанию 139)**. либо попыткой подключения к сетевому ресурсу, при этом можно включить отображение количества найденных шар на машине в столбце Connection**(лучше не использовать постоянно тк сильно нагружает системные ресурсы и может приводить к зависанию некоторых соединений и утечке памяти). Причем зная назначение определенных портов можно узнать какие службы запущены на машинах сети. Общее время перепроверки списка из пары сотен машин - несколько секунд.

Позволяет задавать индивидуальные настройки перепроверки состояния для разных хостов.

Автопроверка списка машин на наличие включенных через заданный интервал времени (по умолчанию 20 мин). Можно задавать индивидульные интервалы перепроверок для хостов.

Умеет прослушивать сетевой траффик и иницировать инливидуальную проверку состояния хоста как только в сети проходит пакет от его IP.

*Позволяет открывать машины как по имени, так и по IP адресам, что может быть намного быстрее.

Умеет открывать так же http/ftp сервера.

Открытие компьютера никогда не приводит к "подвисанию" программы на время установления соединения, т к для этого создается новый поток.

Настройка отображения включенных, выключенных и однажды посещенных машин разными цветами.

Всплывающее меню Resources со списком шар, FTP каталогов 1го уровня и HTTP для компьютера. Позволяет получать быстрый и удобный доступ к этим ресурсом благодаря многопоточности и механизму кэширования. Каждой шаре в меню сопоставляется иконка соответственно с названием (GAMES, INSTALL и тп).

Щелкнув правой кнопкой на компьютере и нажав Properties Вы узнаете его IP и MAC адреса, тип установленной ОС, список работающих на компьютере сетевых сервисов, список пользователей в системе, список подключенных к расшаренным ресурсам компьютеров, время на удаленной машине...

Встроенный NetSearcher - поисковик файлов в сети с расширенными параметрами поиска и возможностью сохранения списка файлов в форматах txt и html различных кодировок. Может сохранять настройки поиска в пресеты. Умеет искать в скрытых шарах, о существовании которых зачастую кстати не знают сами хозяева [image]. Умеет искать файлы как из обычных NETBIOS шар так и по протоколу FTP. Позволяет сохранять список найденных файлов в текстовый, HTML форматы, по заданному шаблону или вообще использовать скриптовое ведение файллиста с возможностью записи в БД.

Можно также скрыть все расшаренные ресурсы одним щелчком мыши. Другим - восстановить их. Можно прятать ресурсы по-отдельности.

Встроенный Resources scaner составляющий список подключаемых ресурсов всей сети, в том числе и скрытых(например c$), с возможностью перебора имени пользователя(при возможности получает список пользователей с хоста). Находит так же FTP ресурсы и HTTP серверы. Умеет сохранять результаты в текстовый файл.

NetMessenger - позволяет слать сообщения Windows Messenger. Аналог NET SEND с возможностью посылки сообщений от произвольного имени. Умеет так же и принимать сообщения.

Отображение машин либо в виде списка, либо в виде дерева сегментов (используется traceroute). Причем карта составляется и обновляется практически автоматически(одним кликом мышки). Так же возможно отображение в виде визуальной карты, с возможностью задания произвольных иконок для компьютеров (можете навешать к примеру фотографии), рисования линий, прямоугольных областей и задания фоновых текстур под все это дело. Все что надо для визуализации вашей сети!.

Может подключать сетевые диски под произвольным именем пользователя и паролем.
Такая мелкая фишка как автосворачивание окна в заголовок и режим окна поверх всех остальных окон. Может вдруг кому-то понравиться?

Программа может висеть в трее(справа внизу, рядом с индикатором часов). Причем значок ее меняется в зависимости от текущего состяния

* - рекомендуется для Windows NT, 2000, XP
**- работает только в среде Windows NT, 2000, XP

На верх


Лицензия

Режим работы сервисом

Этот режим предназначен для тех случаев когда функционирование NetView не должно зависеть от наличия интерактивно залогиненного в систему пользователя. Включается и настраивается он на соответствующей закладке окна общих настроек программы. При работе сервисом в зависимости от того кто сейчас залогинен в системе интерфейс NetView может находится в двух состояниях - режиме администрирования и режиме пользователя. В режиме администрирования (привилегированном) NetView находится если текущий пользователь (тот от чьего имени запущен шелл на рабочем столе) имеет права на запись используемого файла настроек NetView.ini. В этом режиме доступны все возможности программы. Режим пользователя (непривилегированный) включается если текущий пользователь не имеет всех прав на доступ к файлу NetView.ini или если программа не может найти рабочий шелл (В случае если нету залогиненных юзеров интерфейс НВ работает в непривилегированном режиме, хотя его все равно не видно Ж)). Таким образом для возможности такого режима требуется файловая система поддерживающая разграничения по правам, как например NTFS. Настройки касающиеся прав пользователей находятся там же где и проводится установка НВ сервисом. Особо хочется остановится на возможности ограничения аутентификации пользователей с логинами и паролями хранящимися в хостлисте. Если вы отключите пользователям эту настройку вы не сможете корректно проводить плановые поиски файлов в сети используя логины хранящиееся в хостлисте в то время когда НВ работает в непривилегированном режиме. Так же следует отметить что при обычном запуске в режиме приложения НВ так же не закрывает доступ к привилегированным возможностям так что обычным пользователям следует ограничить доступ к каталогу установленного NetView кроме администратора и системы (в режиме сервиса НВ работает от имени системы)


hostlist

Хостлист

Хостлист - это объект, содержащий хосты, линии и области визуальной карты. Хосты могут отображаться различными цветами в зависимости от текущего состояния offline, online, opened и alarm. Хост является Opened если он открывался хотя бы один раз в текущем сеансе работы. Хост Alarm если для него сработало оповещение (например о том что он выключился). При этом он будет находится в таком состоянии пока пользователь не щелкнет на нем мышью. Хосты можно переводить из одного хостлиста в другой указав нужный хостлист в поле Hostlist окна редактирования свойств компьютера. Можно так же включить автоматическую группировку хостов по имени рабочей группы либо первым трем цифрам их IP адреса. Это задается в главном меню->Settings->Autosplit. Там же можно отключить автогруппировку или переслать все хосты на основной хостлист. В настройках можно включить пункт Delete empty lists для того чтобы автоматически удалялись пустые хостлисты. Данные всех хостлистов NetView хранит в файле (по умолчанию default.nvh, либо default.sam). Руками туда лучше не лазить, но вообще то его структура довольно очевидна. Информация хостлиста может представляться в четырех видах, которые можно переключать из контекстного меню->Current sublist->View as или кнопками <-> и <+>:

Список. В этом случае отображаются только иконки соответствующие состояниям хостов и их названия. Дополнительная информация такая как IP, рабочая группа, состояние, заметки отображаются в всплывающей подсказке при наведении мышки на хост.

Детально. Информация отображается в виде списка со столбцами (столбец имен, IP адресов и тд). Столбцы можно менять в окне редактирования хостлиста. Ширину столбцов и сортировку так же можно менять, она сохраняеться в файле хостлиста и восстанавливается при следующем запуске. Учтите что если хостлист не сохранить перед выходом и если выключено Autosave hostlist в настройках то эта информация так же не сохранится.

Визуальный план. Уменьшенная в 2 раза визуальная карта без возможности редактирования.

Визуальная карта. Этот режим предназначен для визуализации компьютерной сети.

На верх


Details

Хостлист :: Детально

Описание столбцов в списке при включенном Hostlist view->Details

  • Hostname - имя хоста, собственное, либо DNS. Часто при изменении IP адреса хостом могут появлятся двойники, с разными IP адресами, и одинаковыми именами, но у одного из них после имени стоит DNS суффикс поэтому автоматически он не удаляется. Эта проблема касается только сетей, в которых используется DNS. Ее можно решить установкой флажка Clear DNS suffixies в настройках.
  • IP address - без комментариев. Если не знаете что это такое, но очень хотите узнать - RTFM. Если Вы не знаете и что такое RTFM - RTFM.

Следующие столбцы включены и настроены по умолчанию, но их можно изменить в окне редактирования хостлиста:

  • Server comment - комментарий сервера. Устанавливается на самом сервере. Виден только если при обновлении списка машин хост был включен.
  • Connection - значение в мсек задержки ICMP эхо-ответа, при включенной проверке PINGами, задержка установления соединения, при включенной проверке соединением на заданный порт, либо количество шар на хосте, если включен Enum shares on host.
  • Custom - редактируемый Вами комментарий к хосту. Сохраняется (если сохраняется) в LMHOSTS файл.
  • Last time - время последнего открытия компьютера, с момента запуска NetView.
  • Last change - время/дата последнего изменения online\offline состояния хоста.


Visual MAP

Этот режим предназначен для визуализации компьютерной сети. Вы можете ставить компьютеры в любое место на карте, соединять их различными линиями, задавать им различные картинки, зависящие от состояния хоста. Хосты можно так же объединять в прямоугольные области, и затем щелкнув правой кнопкой мыши на любое место области можно перепроверить все хосты в ней, выбрав пункт меню Recheck area. Для того чтобы изменить название области и цвет ее границ нужно щелкнуть правой кнопкой на ее подпись и выбрать Edit area label. После изменения текста и цвета нужно нажать Enter, либо Esc для отмены. Линии на карте рисуются с помощью пункта контекстного меню Start line. Начните рисовать линию, левым щелчком добавляется узел, правым рисование линии завершается, и она закрепится на карте. Для удаления любой линии просто щелкните на ней правой кнопкой и выберите Delete line. Линии могут быть различной толщины, цветов и стиля. Редактируются эти параметры из контекстного меню ->Edit line. При этом Вы попадете в окно конфигурации хостлиста, все параметры касающиеся линий будут задавать только выделенную линию. Картинки изображающие устройства задаются при их редактировании. Размеры карты и фоновую текстуру можно так же менять, для этого надо щелкнуть правой кнопкой по карте и выбрать Current sublist->Settings. Подробнее о конфигурации хостлистов можно прочитать здесь. Объекты можно произвольно таскать по карте. Можно выделить сразу несколько узлов линий, хостов и областей и таскать их вместе. Можно нажав левой кнопкой на заголовок какой нибудь области выделить ее и все находящиеся в ней объекты чтобы затем перетаскивать все вместе. Можно менять размер областей таская их стороны или узлы. Выглядит визуальная карта примерно так (для ее создания исользовался плагин Devices, который можно скачать здесь:

На верх


Route map

На карте маршрутов показана схема соединения узлов сети. Составляется она путем выбора пункта меню Retrace all главного меню либо путем трассирования выделенных хостов или текущего хостлиста через контекстное меню хостлиста. При этом следует учесть что некоторые серверы могут ограничивать количество ICMP запросов с Ващего компьютера, что может привести к трассировке не всех хостов, многие могут не протрассироватся. В этом случает следует пользоваться пунктом Trace all главного меню - он трассирует только те хосты, маршрут до которых еще не был успешно найден. Просто нажимайте его несколько раз, пока количество узлов на карте не перестанет добавляться. Информация этой карты сохраняется с хостлистом в .nvh файл и может экспортироваться в более-менее читаемый .txt формат через подменю File главного меню. Карта так же имеет контекстное меню с основными функциями - открыть хост, перепроверить, перетрассировать, редактировать, удалить из хостлиста, посмотреть свойства. Для пояснения их функциональности см. контекстное меню хостлиста. Еще имеются пункты меню Delete from map и Clear route map. Первый просто удаляет хост вместе со всеми дочерними из карты маршрутов, сохраняя их в хостлисте. Второй полностью очищает карту маршрутов.


Контекстное меню

Хостлист :: Контекстное меню

Появляется при щелчке правой кнопкой на хостлист. Присутствующие пункты меню зависят от состояния NetView, выделенных хоств, линий, областей, состояния хослиста установленных плагинов и других факторов. Выглядит оно примерно так:

Open selected - Открыть выделенные хосты в отдельном окне.

Browse selected - Открыть выделенные хосты в дереве каталогов Проводника.

Open with ... - Открыть с помощью указанной в настройках программы.

Resources - это меню открывает список разделяемых ресурсов выделенных хостов. В Win9x открытие этого меню может приводить к кратковременному подвисанию NetView т.к. перечисление ресурсов происходит под этой "системой" в основном потоке. В NT/2000/XP все гладко и без тормозов поскольку опрос ресурсов и построении подменю начинается сразу при открытии контекстного меню. Для того чтобы этого не делалось следует держать клавишу Shift нажатой при открытии контекстного меню хостлиста. При включении FTP в свойствах хоста здесь так же будут показаны FTP каталоги 1го уровня. NetView использует внутреннее кэширование списка ресурсов - при показе ресурсов из кэша они отмечаются красной точкой слева внизу. После того как опрос завершится красные точки пропадут, при этом список доступных ресурсов может оказаться другим. При включении в общих настройках/Opening определения HTTP серверов тут так же будет показываться http ресурсы.

Recheck selected - проводит перепроверку состояния хостов.

Retrace selected - проводит трассировку маршрутов выделенных хостов, обновляя информациюо них в карте маршрутов.
Text to clipboard - копирует содержимое полей выделенных хостов в буфер обмена в виде текста, разделенного символами табуляции

Recheck Area - проводит перепроверку состояния хостов в области, внутри которой Вы щелкнули мышкой для доступа к меню.

Add host - добавляет новый хост в текущий хостлист через окно редактирования хоста.

Edit selected - открывает окно редактирования хоста для выделенных хостов.

Delete selected - удаляет выделенные хосты.

Start line - Начинает рисовать линию в режиме Visual map. Завершается рисование линий нажатием правой кнопки мыши.
Add line node - добавляют узел на линию в режиме Visual map.
Delete nodes/line - удаляет выделеные узлы линий в режиме Visual map. Те линии у которых останется меньше 2х узлов удаляются полностью.

Add new area - добавляет новую область на визуальную карту.

Edit area label - позволяет редактировать метку и цвет области, в которой Вы щелкнули мышкой.

Delete area - удаляет область, в которой Вы щелкнули мышкой.

Current sublist - основные функции управления хостлистом

Recheck list - перепроверяет состояния хостов хостлиста.

Retrace list - проводит трассировку маршрутов хостов хостлиста.

Arrange by - сортирует хосты в списке по соответствующим столбцам, сохраняя группировку по областям. Повторным щелчком можно инвертировать сортировку.
Show mini-map - включает отображение окна с миникартой, облегчающего навигацию в режиме визуальной карты-плана

View as выбор вида отображения информации

List - список

Details - детально

Visual plan - визуальный план
Visual map - визуальная карта

Export map - сохраняет картинку текущей визуальной карты/плана в NetView\Export\ИмяХостлиста.gif
Save as - сохраняет текущий хостлист в файл .nvh

Add from - загружает хосты из указанного .nvh файла в текущий хостлист, игнорируя их первоначальные установки. Загружаются так же линии и области.

Delete sublist - удаляет текущий хостлист вместе с хостами, линиями и областями.

Settings - открывает окно настроек хостлиста.

Send message - открывает NetMessenger, в поле To: указано имя выделенного хоста.

Properties - открывает окно свойств хоста, в котором указана основная инаормация об ОС, пользователях, сессиях и открытых портах

На верх


edcomp

Редактирование свойств компьютера

Появляется при выборе Edit, Add в контекстном меню а так же при редактрировании настроек хостов по умолчанию в общих настройках NetView. Позволяет задавать имя, IP адрес и дополнительный комментарий для компьютера. Так же есть возможность автоматического определения адреса по имени хоста и имени хоста по известному IP(резолвинг). Если хост не имеет IP адреса - оставьте это поле пустым. Все компьютеры должны иметь разные имена и разные непустые IP адреса (если IP адреса нет - то поле оставлять пустым, таких компьютров с уникальными именами может быть много)!

Дополнительные опции:

  • General settings

    • Hostlist - хостлист, в котором находится хост(ы). Можно выбрать из списка уже имеющихся п можно написать имя нового хостлиста - он будет создан.

    • Custom description - произвольный комментарий к хосту.

    • Image online - картинка для хоста визуальной карты, которая будет рисоватся если хост включен. Bmp или Gif (с поддержкой анимации).

    • Image offline - картинка для хоста визуальной карты, которая будет рисоватся если хост выключен. Bmp или Gif (с поддержкой анимации).

    • Enable NETBIOS - эта опция контролирует будет ли нетвью пробовать обращаться к NETBIOS ресурсам компьютера при нахождении расшаренных ресурсов и при поиске файлов NetSearcher'ом. Не следует оставлять этот флажок включенным для хостов у которых точно нет NETBIOS - быстрее будет работать. Поиск файлов и опрос ресурсов если на них работает FTP.

    • Enable FTP active mode- включить активный режим FTP при опросе ресурсов с хоста и при поиске на нем файлов.

    • Enable FTP passive mode - включить пассивный режим FTP при опросе ресурсов с хоста и при поиске на нем файлов. При некоторых конфигурациях файрволлов (персональных или межсетевых) может работать только активный или только пассивный режим. Если включить обе галки сразу то вначале будет проведена попытка подключится в активном, если не получится - то в пассивном режимах.

    • Recheck - отключив эту галку Вы отключите запретите перепроверку хоста.

    • Alert on online - включить оповещение о том что хост включился. При включении этой опции оповещение сработает для этого хоста(ов) даже если отключена аналогичная галка в общих Preferences

    • Alert on offline - включить оповещение о том что хост выключился.

    • Align to grid - автоматически выравнивать позицию хоста по опорной сетке визуальной карты.

    • Link lines - при перетаскивании хоста в режиме визуальной карты с ним будут одновременно таскаться линии, узлы которых находятся в области картинки хоста.

    • Visible in visual map only - при включении это опции хост будет видимым только в режимах визуальной карты\плана. Полезно для объектов которых не хочется видеть в режимах списка (хабы, свичи прочие девайсы)

  • Advanced settings

    • Skip N global timer rechecks after every recheck - пропускать каждые N перепроверок по таймеру прежде чем перепроверять этот хост. Эта фича позволяет задавать индивидуальные интервалы перепроверок для разных хостов.

    • Override global recheck settings - этот параметр позволяет индивидуально для хоста установить способ перепроверки.

    • Use ping - индивидуально включить проверку состояния хоста пингованием с количеством повторных попыток Tries попытками и таймаутом Timeout. Если включено одновременно проверка пингом и сканированием портов то вначале будет проведено сканирование и лишь если не будет найдено ни одного открытого порта хост будет пропингован. Если в общих настройках включено использование ARP запросов при неудачном принге - они будут использоваться.

    • Use port - индивидуально включить проверку состояния хоста коннектом на индивидуально настроенный(е) TCP порт(ы). Список портов задается через ";" - до 8ми штук. Например "139;21;80". Хост будет считаться включенным если открыт хотя бы один из портов.

    • Dynamic IP - при включении этой опции NetView будет переопределять IP адрес хоста при каждой перепроверке (нужно, если IP адрес хоста может меняться, например если он использует DHCP).

    • Static entry - при включении этой опции хост станет статическим - это означает что NetView никогда не будет пытаться сравнить его имя и IP адрес с уже существующими хостами и не будет изменять его IP или имя если посчитает что хост изменил адрес или имя.

    • Default user/passwd - под этим пользователем и паролем нетвью будет подключатся к хосту по NETBIOS и FTP протоколам. Если NetWatcher используется для мониторинга этого сервера, желательно указать здесь имя и пароль администратора.

    • Open path - включив эту галку можно заставить нетвью открывать хост по двойному клику указанной справа командной строкой. В строке могут присутствовать %HOSTNAME% -для вводя имени хоста, %HOSTIP% - для вводя IP хоста, %HOST% - для ввода IP или имени хоста согласно установкам в Preferences, %USER% для ввода имени юзера хоста, %PASS% для ввода пароля. Можно так же сделать так чтобы по двойному клику по хосту открывался другой хостлист. Для этого надо написать здесь "hostlist:hostlistname" где hostlistname имя сопоставляемого списка. Имеется также возможность запускать по двойному клику перепроверку, перетрассировку или редактирование хоста - надо лишь написать в этом поле слово "recheck", "retrace" или "edit" соответственно. Если вы хотите например чтобы по двойному клику запускалась какая-то внешняя программа с дополнительными параметрами то сделать это можно например указав здесь "exec:telnet.exe %HOSTNAME%". Для открытия http:// или ftp:// ссылок никаких дополнительных команд не нужно. Например "http://%HOSTNAME%". Имеется так же возможность привязки плагина или скрипта на двойной клик по хосту - если указать здесь например "hostmsg:123" то при двойном клике по хосту всем плагинам и скриптам будет отправлено уведомляющее сообщение с кодом NMNP_HOSTMSG, причем в wParam будет указанное нами число 123 а в lParam - идентификатор хоста. Специально написанный плагин или скрипт в свою очередь среагировать на это каким-либо запрограммированным действием.


Настройки хостлиста

Hostlist :: Settings

Открываются из контекстного меню Current sublist->Settings либо при редактировании свойств линии.

  • List settings

    • Hostlist name - название хостлиста.

    • Hostlist theme - тема визуальной карты. Фактически - каталог в каталоге Themes нетвью в котором лежат .bmp или gif файлы для иконок и произвольные texture.gif, texture_plan.gif и texture_list.gif

    • Map width - ширина визуальной карты в пикселях

    • Map height - высота визуальной карты в пикселях, эти параметры лучше задавать в разумных пределах - чем меньше размер карты тем меньше получится gif файл после экспорта и тем быстрее он получится.

    • Horizontal grid size - размер опорной сетки в режиме визуальной карты плана по горизонтали, коррдинаты всех объектов при перемещении будут автоматически выравниваться на это значение

    • Vertical grid size - размер опорной сетки в режиме визуальной карты плана по горизонтали

    • Show texture in list and detailed modes - при включении этой опции фоновая текстура используемая в режиме визуальной карты будет так же отображаться в режимах Детально и Список

    • Show grid in Detailed view mode - включает линии таблички в детальном режиме

    • Autoexport map on recheck - автматически экспортирует визуальную карту или план в gif файл после каждого речека. Учтите что экспорт не работает если включен режим отображения Список или Детально

    • Так же на этой закладке вы можете указать цвета хостов в различных состояниях и цвет фона хостлиста, если не используется картинка текстуры

  • List columns - Здесь можно включить\выключить отображение различных метапеременных в столбцах режима Детально. Подробнее что такое метапеременные можно почитать в разделе по скриптам и плагинам

  • Line settings - В зависимости от того как вы открыли это окно (кликом на выделенной линии карты или просто на свободном поле списка) настройки этой закладки могут изменять настройки конкретной линии или настройки рисования линий по умолчанию на данной карте.
    • Line type - тип линии. Витая пара, коаксиал либо телефонная пара. Непринципиально.
    • Line length - длина линии.
    • Line speed - скорость передачи данных.
    • Line note - произвольные заметки. Содержимое этих полей появляется в подсказке при наведении мышкой на линию. Так же может быть использовано плагинами. Например для подведения статистики по карте.
    • Line end by - как будут выглядеть концы линий - с кружком, квадратом, треугольником или без фигур.
    • Pseudo 3d - линия будет иметь плавный градиент цвета от середины к краям.
    • Directed - линия будет иметь градиент толщины от начала до конца. Направление градиента можно будет изменить из контекстного меню. Естественно эти 2 опции имеют смысл только для относительно толстых линий (более 5 пикселов толщиной)
    • Line style, Line color, Line width - стиль, цвет и толщина рисования линии.


Лицензия

Хостлист :: Метапеременные

Хосты в хостлисте - это объекты которые могут содержать любые данные в переменных с произвольными именами. Всю информацию о хостах, кроме имени и IP адреса, NetView сам хранит в этих переменных. Часть этих переменных хранят настройки хостов, часть - служебную информацию. Включить отображение заданных переменных в столбцах детального режима можно в окне настроек хостлиста. Прямой доступ к этим переменным можно получить из скриптов или плагинов либо открыв в текстовом редакторе файл хостлиста. Если имя переменной начинается на ! то NetView будет хранить их на диске во время работы - это имеет смысл для переменных, которые потенциально могут содержать большое количество данных, например список ресурсов хоста. Вот неполный список основных метапеременных, которые использует сам NetView:

map | Имя списка хостов, на котором отображается хост. По умолчанию Default
addtm | Время-дата первого появления хоста в списке в виде "20:34.07 2002/12/02"
lchtm | Время-дата последнего изменения состояния хоста
left | X позиция хоста на визуальной карте [int]
top | Y позиция хоста на визуальной карте [int]
pipo | Индивидуально настроенный метод перепроверки хоста. 0 -пингом, 1 -сканированием портов, 2 -вначале сканированием, если не найдется ни одного порта - пингом. Используется если установлен битовый флаг 0x20 в переменной flags
stport | Индивидуально настроенный список портов для проверки сканированием в фомате port1;port2;...portN - до 8и штук. Используется если установлен битовый флаг 0x20 в переменной flags [DWORD]
scan | Список открытых портов при последней проверке сканированием. В формате port1;port2;...portN
stpdel | Индивидуально настроенная задержка при проверке хоста пингом. Используется если установлен битовый флаг 0x20 в переменной flags [DWORD]
wgrp | Рабочая группа/домен
sdesc | Комментарий хоста
cdesc | Юзерская заметка к хосту
ison | состояние хоста, может быть "on","off","?"
!route | Маршрут к хосту в формате IP1|hostname1/IP2|hostname2/.../IPend|hostnameend/
image | bmp картинка текущей темы для включенного хоста
ofimg | bmp картинка текущей темы для выключенного хоста
ctime | То что пишется в столбце Connection
!nbcache | Кэш NETBIOS ресурсов, обновляется при обращении к хосту из меню, сканера ресурсов и тп.
!ftpcache | Кэш FTP ресурсов, обновляется при обращении к хосту из меню, сканера ресурсов и тп.
!dwlnk | Список хостов от которых зависит состояние этого хоста если для него отключена перепроверка (убран бит 0 в flags). Формат следующий - хост1|хост2|хост3|...|хостN| тут можно указывать как имя так и ип адрес хоста. После изменения этой переменной (или после изменения сразу многих таких переменных у разных хостов) для того чтобы изменения вступили в силу нужно обновить состояние хостлиста через NMPN_ACTION с установленным флагом NVACTION_SETSTATE - при этом будут пересмотрены и записаны в переменные downlnk и uplnk (эти переменные самим трогать нельзя) зависимости между хостами.
flags | Набор битовых флагов - настроек хоста. [DWORD]:
 | $1 - разрешить перепроверку хоста
 | $2 - разрешить привязку к сетке визуальной карты
 | $4 - разрешить привязку линий при таскании хоста без SHIFT'а
 | $8 - включить оповещение о переходе в Online
 | $10 - включить оповещение о переходе в Offline
 | $20 - использовать индивидуальные настройки перепроверки
 | $40 - открывать хост по двойному клику командой указанной в переменной "opcmd"
 | $80 - Включена опция dynamic IP для хоста
 | $100 - Включена опция Static entry для хоста
 | $200 - Отключен NETBIOS
 | $400 - Включен FTP в активном режиме
 | $800 - Хост виден только в режиме визуальной карты или плана
 | $1000 -Включен FTP в пассивном режиме


File

Главное меню :: Файл

Create new hostlist - создает новый дочерний хостлист, являющийся частью основного. Имя дается New hostlist 1 (2,3...). Имя можно изменить через контекстное меню хостлиста [Current sublist->Settings] или щелкнув по нему два раза.

Add from LMHOSTS - добавляет хосты в основной список список машин из указанного файла.

Save LMHOSTS - сохраняет текущий список машин в LMHOSTS файл, имя и путь которого указаны в настройках. В этом файле так же сохраняются дополнительные параметры хостов, хостлистов, карта маршрутов, линии на визуальной карте и тп. Поэтому. если у Вас в настроках отключено автосохранения LMHOSTS при выходе, а Вы желаете сохранить текущее состояние списка - выберите этот пункт.

Save LMHOSTS as - все вышеописанное + диалог выбора имени и пути к LMHOSTS файлу.

Save tracemap - сохраняет сегментную карту сети в текстовый файл.

Exit - без комментариев.


Action

Главное меню :: Действия

Force recheck - проводит перепроверку списка. Если в Preferences включено обновление списка то так же обновляет.

Refresh all lists - обновляет хостлист. Проводит опрос сети если включено в Preferences.

Recheck all lists - перепроверяет хосты. Проверка задается заданным в Preferences методом если для хоста не указаны индивидуальные настройки. (см Редактирование свойств компьютера)

Retrace all lists - проводит трассировку маршрутов для новых хостов. Если Вы хотите заново протрассировать маршрут для старых хостов, просто удалите их из карты маршрутов.(Route map) Или используйте контекстное меню.


Settings

Главное меню :: Установки

Autosplit - Позволяет выбрать задать автоматическое разбиение хостлиста на подлисты по следующим признакам:

By workgroup - По рабочим группам. Учтите что если у Вас включена опция Quick enum в Preferences информация о рабочих группах будет недоступна, либо не будет обновлятся.

By IP segment - по IP сегментам. Скажем хосты 192.168.7.10, 192.168.7.30 попадут в сегмент 192.168.7.х а 10.103.10.25 в 10.103.10.х

No autosplit - Авторазбиение отключено. Режим по умолчанию. Хосты можно перекидывать из листа в лист из контекстного меню->[Edit selected]

Send all to [Default] - Перекидывает все хосты на список Default, являющийся стартовым листом так же для новых хостов. Все виды авторазбинения при этом отключаются.

Hide offline - скрыть из листов выключенные хосты.

Autohide - при включении этого пункта окно нетвью будет автоматически сворачиваться в заголовок при деактивации. Для появления окна нужно кликнуть по заголовку либо переключить задачу.

Always on top - расположить основное окно нетвью поверх всех окон.

Preferences - открывает окно настроек программы


Preferences

Настройки программы (Preferences)

Окно вызывается из меню Settings->Preferences.

General

Autosave settings - сохраняет настройки программы в INI файл автоматически при выходе из программы. INI файл находится в каталоге %USERPROFILE%\Application Data\NetView\NetView.ini для WIN'NT/2000/XP либо в каталоге WINDOWS в Win9x системах.

Autostart with Windows - автоматически запускать NetView при загрузке системы.

Low priority while starting - Понизить приоритет потока, загружающего хостлист на время запуска, для того, чтобы не тормозить систему и сам NetView загрузкой большого хостлиста

Minimize to tray - появляется иконка в трее рисунок которой зависит от состояния NetView. Правым кликом на иконке можно вызвать контекстное меню с набором основных функций. Если у вас трехкнопочная мышь, то по клику средней кнопкой на значке появляется NetWatcher.

Minimize on startup - программа запускается при автозапуске свернутой в значок в трее.

Minimize on close - программа сворачивается в трей при клике по значку закрытия окна справа сверху.

Allow multiple instances - Разрешить запуск многих копий нетвью одновременно, не очень рекомендуется - могут быть конфликты при сохранении различных логов

Show ToolBar - показывать панель инструментов.

Show windows switch bar - включить панель переключения открытых окон. Панель прячется если открыто только менее двух окон.

Silence mode - "тихий" режим, при котором нетвью не показывает никаких сообщений. Полезно при автономной работе и просто если Вам так удобнее.

Startup delay - помогает устранить проблемы с отложенным запуском драйверов. (Когда нетвью запустился а сети еще нет Ж:-) ).

Show notes as caption - если включить эту опцию то в режиме Visual Map вместо имет хостов будут отображаться их Custom comments (если у хоста они есть).

Language file - позволяет выбрать язык локализации нетвью. Сейчас есть только русский, английский и украинский. Напишете еще какой - шлите мне - выложу на сайте или включу в дистрибутив вместе с копирайтом Ж:-). В этом же файле можно менять горячие клавиши различным командам меню.

Hostlist file options.

Здесь задается пусть к файлу хостлиста, в котором хранится список компьютеров с IP адресами, именами и дополнительными комментариями. Туда же сохраняются сведения о подсписках, линиях и областях визуальной карты. Path - путь\имя файла. Иногда, при переустановке программы, реальный путь может изменится, а в настройках остается ссылка на несуществующий файл. При этом в списке машин видны лишь те хосты, которые есть в Сетевом окружении. В таком случае впишите сюда правильный путь, или воспользуйтесь кнопкой Browse для поиска файла по каталогам. Нажав кнопку Edit Вы можете отредактировать файл в программе Блокнот, сохранив изменения после выхода (Хотя лучше этого не делать). Примерные строчки из файла:

#NetView hostlist created on 2003/1/12 at 19:42.8

192.168.7.10 killer ##Всякая ерунда#

- ipxhost ##Всякая ерунда#

#$list$192.168.x.x##UTP Cat5E#
Всякую ерунду лучше не трогать

Re-read hostlist - при включении этой опции NetView будет перечитывать хостлист из файла при каждом рефреше.

Avtosave hostlist - при включении этой опции NetView будет сохранять хостлист при каждом рефреше.

Don't backup hostlist file on startup - По умолчанию NetView делает копию хостлиста чтобы в случае программного сбоя можно было восстановить хостлист. Отключите эту опцию если сохранность хостлиста неважна для быстрого запуска программы

Edit default settings for newly added hosts - Нажмите эту кнопку для редактирования настроек по умолчанию автоматически добавляемых в хостлист хостов (при обновлении списка, из сканера сети, NetWatcher'а или плагинов/скриптов).

Automatically clear following DNS suffixies - убирать DNS суффиксы у имен хостов. Полезно для предотвращения появления "двойников" и просто для красоты. Но ТОЛЬКО если у Вас в свойствах сетевого окружения прописаны DNS суффиксы для автоматического поиска. В этом поле можно указать через знак ";" dns суффиксы, которые нужно удалять из имен хостов. Можно указать знак * -в этом случае будут удаляться все суффиксы у имен, у которых нет префикса www.

Autosort hostlist - при включении после каждого речека автоматически сортируются все хостлисты, которые не в режиме Visual Map.

Alert on online - глобальный режим оповещения о включении хоста

Alert on offline - глобальный режим оповещения о выключении хоста

Delete empty lists - автоматическое удаление пустых хостлистов

Show notes as caption - позволяет отображать в качестве подписей хостов Custom comments в режиме Visual map.

Opening options

Open using hostname - открывает машины по их именам. Все равно что Вы введете в Run \\hostname. Максимальная совместимость.

Open using IP address - при включенной опции открытие происходит по IP адресу, что работает быстрее на NT/2000 системах. Под win95 это похоже вообще не работает. под 98 и ХР работает, но медленнее чем по имени. Иногда, в многосегментных сетях, при неправильно настроенных WINS сервисых на сервере некоторые кампьютеры из одних сегментов становятся невидимы для других сегментов по имени. По IP, как правило, все работает.

Open in Window - открывает компьютеры по умолчанию (двойным кликом или ENTERом) в окне

Open in Explore - /../ в дереве каталогов Проводника Windows.

Open in Custom program - /../ в указанной ниже программе, например, Windows Commander.

Open normal - окно открывается в нормальном виде.

Open maximized - /../ развернутым на весь экран.

Open minimized - /../ свернутых в панель задач.

Force recheck host on opening - перепроверяет хост перед открытием. Нецелесообразно если перепроверка производится методом try connect to resource.

Try to open host if its state is offline - пытаться открыть хост даже если последний речек показал что он выключен

Don't show hidden resources - отключает возможность нетвью видеть скрытые ресурсы. При отключении этой опции так же не будет производится поиск и сканирование в этих ресурсах

Detect and show HTTP servers - включает возможность НВ детектировать HTTP серверы (путем сканирования 80го порта) в подменю Ресурсы и в Сканере ресурсов

Single click open - открывать хосты одиночным кликом. Некоторым так привычнее.

Try firstly FTP passive mode connection - по умолчанию для хостов у которых разрешен и активный и пассивный FTP режим НВ пытается вначале использовать активный режим при работе с FTP что может привести к большим задержкам если работа FTP в этом режиме невозможна (например изза файрволла). Включите эту опцию чтобя НВ вначале пробовал использовать пассивный режим.

Random auto-authorization username: - введите тут имя пользователя под которым НВ будет пытаться авторизоваться если при заходе на шару или при попытке получения списка шар он получит отказ в доступе. В NetSearcher при включении опции Force random auto-authorization НВ авторизуется этим пользователем сразу не пытаясь получить список шар без дополнительной авторизации. Если указать тут пустую строку то НВ не будет использовать дополнительную авторизацию. Знаки # в строке автоматически заменяются на случайные цифры.

Checking

Optimize Windows TCP/IP stack - эта опция работает только под Windows'NT/2000/XP/2k3. По умолчанию Windows назначает для исходящих TCP соединений локальные порты с номерами от 1024 до 5000 и после закрытия соединения использованнй порт не может быть повторно использован в течении 240 секунд, что может приводить к неверным результатам сканирования и блокировку сетевой подсистемы после речека большого количества компьютеров, или же после сканирования большого количества портов при помощи Network scaner'а. Включение этой опции расширяет диапазон значений портов до 64510 и уменьшает время блокирования порта до 30 секунд.

Using scan ports - проверка проводится путем попытки установить соединение с заданным IP адресов на заданный(е) порт(ы). Если указать порт 139(по умолчанию) - будут показаны все включенные машины, на которых запущена служба совместного доступа к файлам SMB. Если поставить 80 - то Вы узнаете адреса всех включеных HTTP серверов. Список общеиспользуемых TCP портов Вы можете прочитать в файле COMMPRTS.TXT и в файле CPORTS.LST - этот файл является основным опорным список комментариев к портам для нетвью и в нем же помечены знаком + порты, подлежащие прослушке IP logger'ом. Можно так же задать до 8ми разных портов через ";". Например "139;21;80" В этом случае список открытых у хоста портов можно узнать из переменной scan.

Maximum simultaneously opened sockets: - ограничение на максимальное количество одновременно открываемых сокетов при проверке сканированием. Для Windows семейства NT устанавливается значение по умолчанию 500, для 9х - 50. Чем меньше значение - тем дольше будет длиться сканирование, и тем меньше нагрузка во время него на вашу систему и на маршрутизаторы сети. Кроме того Windows XP с установленным Service pack 2 ограничивает количество одновременных попыток подключения числом 10, что требует установки соответствующего лимита в этом поле для правильный результатов перепроверки сканированием портов. Кстати это можно преодолеть использованием RAW сокетов.

Use RAW sockets for port scan - по умолчанию когда эта опция выключена, если НВ проводит перепроверки состояния хостов всего списка путем сканирования портов, он создает сокет для каждого отдельного соединения и пытается подключится используя стандартную API connect(). Если хостов много это то отбирает некоторую часть системных ресурсов, в том числе и невыгружаемого пула памяти размер которого обычно невелик и определяется размером физической памяти. В Windows 2000 появилась возможность без своего драйвера работать практически напрямую с сетевым интерфейсом генерируя произвольные IP пакеты и принимать и анализировать траффик проходящий в сети, возможность эта кстати доступна только если приложение запущено администратором или работает как сервис . При включении этой опции НВ создает лишь 1 сокет для проверки всего списка хостов, создет и шлет через него TCP SYN пакеты и затем анализирует входящий траффик принимая все IP пакеты приходящие по сети и отфильтровывая из них ответы на посланные запросы, экономя системные ресурсы. Как минус - немного меньшая надежность сканирования - когда НВ сканирует порты через connect() то система обычно шлет сразу несколько SYN запросов что увеличивает вероятность того, что хоть один запрос дойдет в случае большой загрузки сети. Впрочем справа можно указать количество отсылаемых SYN пакетов для каждого запроса. Кстати даже при включенной этой опции проверки одиночных хостов например через контекстное меню проводятся обычным путем. Внимание: эта возможность может работать неправильно если на вашей машине работает файрволл. Вобщем если после включения этой опции все внезапно стали Offline - выключите ее

Using ping - проверка проводится путем пингования IP адреса ICMP эхо запросом с данными размером 32 байта и заданным временем ожидания ответа. Проверка проводится tries раз до первого ответа. Если ответов нет - хост помер.

Try ARP request if ping recheck failed - Эта опция расширяет стандартную перепроверку пингом: если хост, находящийся в одном сегменте сети с вами, не отвечает на пинги NV проверит отвечает ли он на ARP запросы. Не рекомендуется для постоянного использования в связи с тем что использует броадкастовые пакеты. Так что включайте это только если оно вам действительно нужно.

Внимание: При одновременном включении Using scan ports и Using ping Нетвью будет вначале пытаться подключится к портам, если не будет найдено ни одного открытого порты попытается пропинговать заданное количество раз с заданным таймаутом и лишь при неудачном пинге посчитает что хост выключен.

Requests interleave - эта опция задает задержку в мсек между отдельными пингами/сканами в течении перепроверки. Чем бльше значение - тем дольше сканирование, но тем точнее его результаты и тем меньше нагрузка на CPU во время перепроверки.

Force host's recheck by IP packet, initiate delay: - эта опция доступна только в Windows 2000 и выше и работает корректно только если НВ запущен администратором или работает как сервис. При ее включении НВ будет прослушивать входящий траффик на всех доступных при запуске сетевых интерфейсах, при ловле пакетов НВ проверяет имеется ли хост с IPшником таким как в пакете в хостлисте, и если хост имеется и был в офлайне после последней глобальной перепроверке НВ инициирует перепроверку хоста через указанное справа количество миллисекунд. Если хост в результате одиночной проверки окажется в офлайне то НВ не станет иницировать проверки хоста по приходу пакетов с его ИПшником до следующей глобальной перепроверки. Таким образом данная опция позволяет НВ практически мгновенно (как только будет получен хотя один IP пакет с него) реагировать на включение хоста. Внимание: эта возможность может не работать если на вашей машине работает файрволл.

Recheck every ## seconds - проводит автоматическую перепроверку всего списка по таймеру каждые ## секунд. Учтите что для хостов в индивидуальном порядке можно устанавливать количество пропусков глобальных перепроверок. Это позволяет задавать различные периоды перепроверок. Скажем период равен 10 мин, а комп VASYA пропускает каждые 2 перепроверки. Значит VASYA будет проверятся каждые 30 минут.

Refresh hostlist automatically before every global recheck - обновляет список машин при каждой перепроверке списка, опрашивая сеть и перечитывая .nvh файл (если такая опция включена в Hostlist file options). Значительно замедляет проверку.

Check by timer only alertable hosts - проверять по таймеру только хосты с включенным оповещением. Разгружает сеть.

Resolve hosts's IP before every recheck - эта опция необходима если в Вашей сети используется DHCP. В этом случае IP адреса хостов будут автоматически определятся перед каждой проверкой. Кроме того эта опция запрещает NetView проводить разрешение конфликтов IP адресов при добавлении новых хостов в список.

Disable searching for new hosts on startup - не опрашивать сеть на наличие новых хостов при запуске. В списке будут присутствовать лишь те хосты которые есть в загружаемом по умолчанию .nvh файле. Обычно значительно ускоряет запуск NetView.

Look for new hosts only in specified workgroups - Альтернативный метод опроса сети для автоматического нахождения новых хостов (рефреша). Работает обычно быстрее стандартного видит только компьютеры тех рабочих групп что указаны в поле справа (если там ничего не указать то ищет только в своей рабочей группе). Кроме того в этом режиме NetView при обновлении списка автоматически заполняет дополнительную метапаременную "os" - нее заносится предположительный тип операционной системы на хостах

IP to hostname scan and conflicts resolve method: - Метод который NetView будет использовать для определения имен хостов по их IP адресам в различных ситуациях. Возможны варианты Стандартный, используя NETBIOS и их комбинации. Стандартный метод пытается определить имя хоста по его IP адресу используя DNS reverse lookup или через WINS. Вобщем то что определит этот метод зависит от записей на сервере сети, а не от того как хозяин адреса реально назвал свой компьютер, что может вызвать некоторые проблемы. Метод определения имени хоста с помощью NETBIOS'а работает только если этот самый NETBIOS включен на том хосте и если он выдаст вам небходимую информацию. Зато это имя будет именно тем именем под которым хост виден в сетевом окружении и кроме того этот метод может работать быстрее стандартного. Комбинации могут использоваться для того чтобы вначале попытаться определить имя с помощью стандартного метода и если не получится - то с помощью NETBIOS или наоборот.

Share images

Здесь можно сопоставить картинки в меню Shares и в Share Scaner'е по маскам имен ресурсов. Картинки - это 16х16 bmp файлы в каталоге \ShareImg нетвью.

Scripts

Здесь можно запустить\остановить или настроить автозапуск скриптов общего назначения, лежащих в каталоге \Scripts\Scripter. Настройка осуществляется через контекстное меню по клику правой кнопкой мышки.

Service

Если хотите чтобы NetView работал сервисом, настроить режим работы сервисом или наоборот удалить NetView как сервис то вам сюда. Подробнее зачем это может понадобиться можно прочитать тут.

На верх


Plugins

Главное меню :: Плагины

Здесь можно загрузить, выгрузить, конфигурировать и настроить автозагрузку плагинов. Для этого есть соответствующие пункты контекстного меню списка плагинов. Для того чтобы установить плагин в нетвью необходимо переписать его основной .dll файл в каталог plugins и перезапустить netview. Если плагин поддерживается Вашей версией NetView - он появится в этом списке. Учтите что окно конфигурации станет доступно лишь после выполнения всех операций связанных с начальной загрузкой.

Последние версии плагинов всегда можно найти здесь.

О том как написать плагин к NetView можно прочитать здесь


Tools

Главное меню :: Инструменты

  • NetSearcher
  • Resources scaner
  • NetMessenger
  • Script editor
  • Connect network drive
  • Disconnect network drive.

NetSearcher допускает запуск нескольких инстанций. Для этого воспользуйтесь контекстным меню соответствующих кнопок на панели инструментов. Либо нажимать соответствующие пункты меню при нажатой клавише SHIFT. Script editor вообще является по сути подгружаемым из .dll модулем так что их так же можно открывать сколько угодно.


Windows

Главное меню :: Окна

Надеюсь не нужно объяснять зачем оно


Help

Главное меню :: ?

Меню служит для того, что бы вы смогли попасть сюда [image] Здесь отображаются все chm файлы найденные в каталоге \Help.


NetSearcher

Поиск файлов (NetSearcher)

Это поисковик файлов в сети, позволяющий искать файлы и каталоги по заданным маскам(нескольким одновременно), размеру файла. Умеет искать файлы как по NETBIOS так и по FTP протоколам. Можно редактировать список машин подлежащих поиску, сохранять результаты поиска в текстовый файл либо в html виде с ссылками. Поиск может вестись в циклическом режиме, пока не будут сканированы все машины списка. Используется многопотоковый механизм поиска, значительно ускоряющий поиск. Найденные файлы можно автоматически скачать во время или в конце поиска. Настройки поиска можно сохранять в пресеты и потом быстро загружать. Поисковик может работать в режиме обновления списка - периодически начиная поиск, добавляя в список новые файлы и удаляя те, которые он не видел больше указанного количества часов.


NetSearcher::Установки

Поиск файлов (NetSearcher) :: Закладка Установки

Time limit - ограничение времени на сканирование одного хоста. Если какой-то хост сканируется время большее чем здесь указано - он автоматически скипается (в поле Searched ставится "yes").

Max directory tree depth - максимальная глубина каталогов, куда будет "рыть" поисковик. Для ftp серверов корневым каталогом является сам сервер, для NETBIOS ресурсов - шара.

Cycled searching - режим циклического поиска, при котором поиск проводится циклически, пока для всех хостов не будет Searched="yes" или пока поиск не будет прерван вручную нажатием кнопки "Stop";

Save filelist on finish - при включенном чекбоксе файллист будет сохранен автоматически после окончания процесса поиска. При щелчке по этому чекбоксу открывается окно, в котором указываются опции сохранения файллиста.

Recheck hosts - перепроверять хост перед тем как искать на нем файлы. Экономит время, если в списке много выключенных машин.

Autosearch on - Поисковик умеет автоматически начинать сканирование по таймеру. Для этого служит эта опция . В строчке внизу необходимо указать времена когда начинать поиск через ; Например: "08:10;10:45;16:30" или "06:30".

Threads count - максимально количество потоков одновременного поиска (каждый поток сканирует отдельный хост одновременно с другими, что ускоряет поиск, но на слабых машинах с установленной Win 9x большое количество потоков может значительно замедлить работу системы либо привести к краху системы).

Priority - приоритет потоков. Малое значение замедляет поиск при одновременном выполнении других программ, большое - замедляет другие программы.

Use script - позволяет задать скрипт из каталога \Scripts\Searcher который может обрабатывать результаты поиска файлов. (Подробнее о скриптах)

No filelist mode - выключает ведение файллиста самим NetSearcher'ом. При включении этой опции результаты поиска файллов могут обрабатываться только скриптами. Поскольку в этом случае НВ не держит весь список файлов в памяти, это позволяет проводить поиск и индексацию в БД большого количества файлов с минимальным использованием RAM.

Enable list-update mode - включает режим обновления файллиста, при котором нетсичер при сохранении файллиста в файл автоматически сохраняет состояние файллиста во врменный .sfl файл в каталоге нетвью, при следующем поиске нетвью загрузит этот файл и будет добавлять туда лишь новые файлы.

Delete if not found on searched - после завершения поиска NetSearcher проходит по созданному списку файлов, удаляет из него те файлы которые были удалены с хостов на которых был успешно проведен поиск

Display files as new for - здесь можно указать в течении скольких часов после первого нахождения поисковик будет считать файлы новыми. Новые файлы выделяются в html списке цветом.

Delete files not refreshed for - если нужно чтобы старые файлы, которых поисковик не видел в течении определенного периода времени удалялись автоматически - включите эту опцию и укажите по истечении скольких часов после последнего обнаружения файлы будут удаляться.

На верх


NetSearcher::Установки

Поиск файлов (NetSearcher) :: Закладка Пресеты установок

Здесь Вы можете сохранить текущие настройик в пресет, загрузить уже сохраненные настройки, либо удалить существующий пресет.

Presets list - список пресетов установок, изначально пусто, но вы можете настроив поисковик например на поиск музыки в mp3 формате сохранить все настройки в пресет. При выходе нетвью запоминает какие были запущены поисковики с какими загруженными пресетами, и при следующем запуске автоматически запускает то же количество поисковиков что было активно при выходе, загружая в них те пресеты которые были тогда загружены.

Load selected preset - загружает выделенный в списке пресет, восстанавливая все установки

Delete selected preset - удаляет выделенный в списке пресет.

Save current options as - сохраняет все текущие установки в пресет, имя которого написано внизу.


NetSearcher::Filter

Поиск файлов (NetSearcher) :: Закладка фильтр

Закладка Filter

Search for: - что искать - файлы, каталоги или тои другое.

Filesize MIN: ##1 MAX: ##2 ##3 - ограничение по размеру для найденных файлов. Файлы других размеров пропускаются. Если в поле выбора единиц размера файла выбрать последний пункт No size, то размер файла не будет опрашиваться, что несколько ускоряет поиск.

Search masks - маски для поиска. Например *.avi -ищет все файлы с расширением avi, cool*.mp3 - ищет все файлы название которых начинается на cool с расширением mp3 и тп.

Only if path include - включать файл в список только если путь к файлу содержит один из указанных фрагментов.

Only if sharename incllude - искать только в ресурсах, в названиях которых есть указанные фрагменты. В других ресурсах поиск не производится, что позволяет ускорить поиск *.avi файлов, прописав сюда значения media, video, film и тп. В случае поиска по FTP именами шар считаются имена папок первого уровня.

Skip if path include - не проводить поиск в путях, в которых есть указанные фрагменты.

HostTable -это список машин, подлежащих поиску. Редактировать его Вы можете пользуясь контекстным меню по клику правой кнопкой. Особое значение имеет поле Searched. Хост будет сканироваться только если его значение отлично от yes. Если хост был уже один раз просканирован или пропущен из-за лимита времени или ошибки во время поиска это поле для него выставляется в yes. Редактировать можно через всплывающее меню->Set SEARCHED.


NetSearcher::save

Поиск файлов (NetSearcher) :: Сохранение результатов

Ниже HostTable находится список найденных файлов. Вы сможете его сохранить или очистить так же воспользовавшись контекстным меню, либо двойным щелчком на каком-либо файле открыть каталог, где он лежит.

Окно сохранения файлиста Save filelist имеет следующие настройки:

File - пусть к файлисту, может содержать кодовые комбинации %d и %t для вставки даты и времени соответственно. Если путь не существует нетвью создаст его автоматически.

Encoding - выбор желаемой кодировки, напимер кои-8 для html

Type - формат файллиста текстовый, html, или по заданным шаблонам

Enable PING buttons - в файллисте напротив каждой ссылки будет кнпка Ping, позволяющая пинговать хост перед открытием, чтобы проверить включен ли он

Enable KILLCOPY buttons - позволяет скачивать файлы посредством KillCopy не открывая самих ссылок. Необходимо чтобы в системе была установлена KillCopy 2.42 как минимум.

Enable references to path - включить ссылки на пути к файлам

Enable references to file - включить ссылки на сами файлы

Include filesize column - в файллисте будет столбец с размерами файлов.

Add hostlist in beginning - в начало файллиста будет вставлен список машин HostTable на которых проводился поиск (оба столбца)

Sort by... Выбор типа сортировки

Autoadjust columns width - автоматически подбирать ширину столбцов. Если отключить, то ширину всех трех столбцов придется указывать вручную ниже. Для текстовых файлов ширина указывается в символах, а для HTML - в пикселях.

Шаблоны при сохранении в HTML формат

Сохранение по шаблонам возможно при включении соответствующего формата.

Всего есть 4 шаблона - главный, шаблон хоста из hosttable, обычный шаблон файла и шаблон файла отмеченного как новый (см поиск в режиме обновления списка).

  • Главный шаблон - представляет собой общий скелет результируещего html файла. Он может содержать следующие служебные последовательности (без кавычек):
    • "%d%" - вставляет текущую дату
    • "%t%" - вставляет текущее время
    • "%totalhosts%" - вставляет общее количество хостов в Hosttable
    • "%searchedhosts%" - вставляет количество хостов в Hosttable на которых последний поиск был успешен
    • "%pathwidth%" - вставляет рассчитанную или указанную ширину столбца путей к файлам
    • "%namewidth%" - вставляет рассчитанную или указанную ширину столбца имен файлов
    • "%sizewidth%" - вставляет рассчитанную или указанную ширину столбца размеров файла
    • "%hostentries%" - вставляет последовательность хостов сформированную по шаблону хоста
    • "%fileentries%" - вставляет последовательность файлов сформированную по шаблонам файла

  • Шаблон хоста - представляет собой элемент списка хостов вставляемого в общий шаблон на месте %hostentries% Он может содержать следующие служебные последовательности (без кавычек):

    • "%hostname%" - вставляет имя хоста
    • "%searched%" - вставляет "yes" или "no" в зависимости от того был ли поиск на хосте успешно завершен

  • Обычный шаблон и шаблон нового файла - представляет собой элемент списка хостов вставляемого в общий шаблон на месте %fileentries%. В зависимости от того файл является новым или нет используется соответсвующий шаблон. Он может содержать следующие служебные последовательности (без кавычек):
    • "%hostname%" - имя хоста на котором расположен файл
    • "%path%" - путь к файлу. Например "\\hostname\share\path" или "ftp://server/path/"
    • "%pathurl%" - путь к файлу, преобразованный к виду, годному к употреблению в качестве url ссылок ("\\hostname\share\path" превращается в "file://hostname/share/path")
    • "%namel%" - имя файла
    • "%pathname%" - путь и имя хоста сразу
    • "%pathnameurl%" - путь и имя хоста сразу, преобразованные к виду, годному к употреблению в качестве url ссылок
    • "%pathjs%" - путь к файлу пригодный в качестве параметра для java-скриптов. В нем все символы "\" заменены на "\\" а "'" заменен на "\x27"
    • "%namejs%" - имя файла пригодное в качестве параметра для java-скриптов.
    • "%pathnamejs%" - путь+имя файла пригодное в качестве параметра для java-скриптов.
    • "%size%" - размер файла
    • "%pathwidth%" - вставляет рассчитанную или указанную ширину столбца путей к файлам
    • "%namewidth%" - вставляет рассчитанную или указанную ширину столбца имен файлов
    • "%sizewidth%" - вставляет рассчитанную или указанную ширину столбца размеров файла


Share scaner

Сканер ресурсов (Resources scaner)

Эта штука может использоваться для 2х целей:

  • Составляет список открытых по FTP/NETBIOS/HTTP ресурсов на всех компьютеров сети, с указанием прав доступа (кроме HTTP). Можно задать имена пользователей, от которых проводится подключение, так же проводится попытка перечисления пользователей удаленного хоста (работает применительно к WIN'NT/2000). Тут же, нажав правой кнопкой, можно открыть сетевой ресурс, либо подключить сетевой диск (для NETBIOS).
    Опция Selected позволяет сканировать только выделенные во всех хостлистах хосты. Резульат можно сохранить в текстовые файлы SHARELIST.TXT и SHARETREE>TXT в каталоге нетвью\Export - правой внопкой мыши Save to... Либо включив опцию Save to file - в этом случае нетвью автоматически сохранит этот файл после завершения сканирования. Включив опцию Recheck Вы ускорите сканирование за счет того, что не будут производится попытки подключится к выключенным хостам.

  • По умолчанию сканер ресурсов ищет FTP и NETBIOS ресурсы на хостах в зависимости от их настроек. При включении опции FTP/NETBIOS autodetection сканер ресурсов будет определять наличие таких ресурсов автоматически (путем сканирования портов 139,445 и 21) и при необходимости менять настройки хостов в хостлисте

  • Чтобы сканер находил HTTP ресурсы нужно включить в общих настройках программы на вкладке Opening определение HTTP ресурсов

  • Имеется 2 возможности вывода результатов - из кэша и собственно сканированием. При выводе результатов из кэша это делается очень быстро, но при этом отображается информация, сохраненная для каждого хоста при последнем обращении к нему (в сканере ресурсов или из подменю Ресурсы).

  • Удобно например, отсканировав один раз все ресурсы, затем избирательно быстро выводить из кэша только те, что имеют в своем составе к примеру слово game или music, очищая результат, вводя маску поиска и нажимая кнопку загрузки результатов из кэша.


NetMessenger

Послать сообщение (NetMessenger)

Умеет посылать сообщения на компьютеры с установленной WIN'NT/200/XP, на которых запущена служба сообщений (Messenger service), которая устанавливается по умолчанию при установке системы. Сообщения в отличии от консольной команды net send можно слать от произвольного имени (эта функция работает не под всеми Windows). Опция Monitor incoming управляет службой сообщений - отключив этот флажок, Вы перестанете получать какие-либо сообщения. Включив опцию Use NetView monitoring вы включите встроенный монитор сообщения NetView, при этом Windows messenger service будет остановлен. Под Win9x нетвью так же умеет принимать сообщения с помощь. этой опции. Опция Enable flood filtering позволит фильтровать повторяющиеся сообщения от одного и тогоже отправителя.


Плагины NetView

NetView имеет возможность поддержки плагинов - дополнительных модулей, расширяющих его возможности. Например можно создать подробную базу данных по сети и ее пользователям, научить нетвью следить за сетью через SNMP, проводить мониторинг траффика работы пользователей и еще много чего чтобы затем объединить все это в интерфейсе одной программы. Вы можете свободно писать плагины для нетвью, ссылки на freeware плагины я с удовольствием размещу у себя на сайте. Так же NetView предоставляет API другим программам для доступа к данным хостлиста. Делается это посредством функций из NVAPI.DLL. Для написания плагинов и программ в каталоге установленного netview лежит заголовочный файл nvplugn.h в котором описаны все сообщения и структуры, используемые для работы с плагинами. Так же имеется описание на русском некоторых структур (но не всех - все имеются в nvplugn.h файле) и приемов:

Работа с NetView из внешних программ

Общие принципы создания плагинов и их взаимодействие с NetView

Взаимодействие с хостлистом

Создание элементов меню плагина в интерфейсе NetView

Уведомляющие NMNP_ALERT, NMPN_ACTION и NMNP_ACTION сообщения


Плагины NetView

Плагины NetView :: Работа с NetView из внешних программ

Любые программы могут получать данные из NetView или даже вносить изменения в хостлист или управлять работой NetView посредством функций экспортируемых nvapi.dll. Ниже можно найти список функций и их параметры. Функции которые изменяют данные хостлиста могут не работать(отмечены + слева) или иметь ограниченную функциональность (+) если текущий процесс работает в непривилегированном режиме. Эта фича включается в общих настройках NetView на закладке Service. Остальные функции доступны всегда когда запущен NV (+). И еще - функции доступа к линиям, областям и картам возможно в будущем будут переделаны чтобы работа с этими объектами была примерно такой же как работа с хостами. Хотя скорее всего эти функции останутся для обратной совместимости но появятся новые, более универсальные.

DWORD __stdcall NVGetNetViewStatus(void *Reserved);

DWORD __stdcall NVAction(void *Reserved, DWORD wp, DWORD lp);

DWORD __stdcall NVSetEventHandlerProc(void *HandlerProc);

DWORD __stdcall NVGetHostByTextA(void *Reserved, char* Txt,DWORD Flags);

DWORD __stdcall NVGetHostA(void *Reserved, NVHOST* Hst,DWORD Flags);

DWORD __stdcall NVSetHostA(void *Reserved, NVHOST* Hst,DWORD Flags);

DWORD __stdcall NVDelHostA(void *Reserved, NVHOST* Hst);

DWORD __stdcall NVGetMetaVarA(void *Reserved, DWORD HostID, char *VarName, char *DataBuff, DWORD *BuffSize);

DWORD __stdcall NVSetMetaVarA(void *Reserved, DWORD HostID, char *VarName, char *DataBuff, DWORD BuffSize);

DWORD __stdcall NVGetListByTextA(void *Reserved, char *Txt,DWORD Flags);

DWORD __stdcall NVGetListA(void *Reserved, NVLIST* Lst);

DWORD __stdcall NVSetListA(void *Reserved, NVLIST* Lst);

DWORD __stdcall NVDelListA(void *Reserved, NVLIST* Lst);

DWORD __stdcall NVGetLineA(void *Reserved, NVLINE *Ln);
DWORD __stdcall NVSetLineA(void *Reserved, NVLINE *Ln);
DWORD __stdcall NVDelLineA(NVLINE *Ln);
DWORD __stdcall NVGetAreaA(void *Reserved, NVAREA *Ar);
DWORD __stdcall NVSetAreaA(void *Reserved, NVAREA
*Ar);
DWORD __stdcall NVDelAreaA(void *Reserved, NVAREA *Ar);

+DWORD __stdcall NVGetNetViewStatus(void *Reserved);

Возвращает значение типа DWORD старшая половина HIGHWORD(ret) которого - версия работающего NetView (старший\младший байт - старшая\ младшая часть версии), младшая LOWORD(ret):

  • 0 - если NetView не запущен или процесс не может получить к нему доступ
  • 1 - если процесс может получить только читать данные из NetView но не изменять
  • 2 - если процесс имеет полный доступ к NetView
  • Reserved - зарезервировано на будущее, должно быть установлено в NULL

Наверх

+DWORD __stdcall NVAction(void *Reserved, DWORD wp, DWORD lp);

Многофункциональная процедура. Коды действий в wparam:
  • NVACTION_RECHECK - перепроверить хост или хосты из списка. Если (wp and NVACTION_LIST)<>0 то перепроверять список. В lp -идентификатор списка или 0.(wp and NVACTION_LIST) - то перепроверять хост. Функция возвращается сразу, не ожидая окончания проверки.
  • NVACTION_RETRACE -перетрассирует хост или список аналогично NVACTION_RECHECK
  • NVACTION_OPEN - открывает хост с идентификатором в lp
  • NVACTION_EDIT - открывает окно редактирования хоста с идентификатором в lp. Возвращает 0 если редактирование отменено.
  • NVACTION_IMGEXPORT - инициирует экспорт визуальной карты с идентификатором списка в lp
  • NVACTION_SETSTATE - выполняет обновление состояния хоста в списке согласно всем метапеременным. Быстрее чем метод SETHOST класса TNVHOST т.к. не инициирует процедуру перепроверки и не перезаписывает внутренние структуры. В lp надо засунуть идентификатор хоста.
  • Reserved - зарезервировано на будущее, должно быть установлено в NULL

Наверх

+DWORD __stdcall NVSetEventHandlerProc(void *HandlerProc);

Устанавивает функцию-обработчик уведомлений о событиях NetView. Каждый процесс может иметь только один такой обработчик. Если HandlerProc=NULL то обработчик выключается. Обработчик должен быть объявлен следующим образом:

  • LRESULT CALLBACK HandlerProc(DWORD msg, DWORD wp, DWORD lp, DWORD tm); и должен возвращать 1.
    • msg = NMNP_ALERT
      • NVALERT_NETWATCHER - событие в NetWatcher'е. Если (wp && NVALERTMASK_CANCEL)==0 значит ктото подключился, иначе - отключился. в lp присутствует идентификатор подключившегося хоста или 0. Так же можно проверить наличие следующих флагов: если (wp && NVALERTMASK_NWBLACK)!=0 значит юзер из черного списка, если (wp && NVALERTMASK_NWWHITE)!=0 значит юзер из белого списка
      • NVALERT_ALARMHOST - для хоста, идентификатор которого находится в lparam произошло оповещение. Если (wp && NVALERTMASK_HOSTUP)!=0 значит хост включился, если (wp && NVALERTMASK_HOSTDOWN)!=0 - выключился, Если (wp && NVALERTMASK_CANCEL)!=0 - юзер кликнул мышкой по хосту для которого перед этим произошло оповещение
      • NVALERT_TERMINAL -произошло подключение\отключение в Terminal. lparam -идентификатор подключившегося хоста или 0.Если (wp && NVALERTMASK_CANCEL)!=0 значит хост подключился, иначе - отключился.
      • NVALERT_REDIRECTOR -произошло подключение\отключение в Port mapper. lparam -идентификатор подключившегося хоста или 0.Если (wp && NVALERTMASK_CANCEL)==0 значит хост подключился, иначе - отключился.
      • NVALERT_IPLOGGER -IP logger чтото засек. Проверяем с помощью && наличие следующих флагов:
        • NVALERTMASK_ILLIST - ктото подключился в прослушиваемому порту
        • NVALERTMASK_ILICMP - наc флудят по ICMP
        • NVALERTMASK_ILSYN - наc флудят TCP SYN пакетами
        • NVALERTMASK_ILUDP - наc флудят UDP пакетами (ненадежно)
    • msg = NMNP_ACTION
      • NVACTION_LIST. lp может содержать идентификатор списка или 0. wp может комбинироватся c:
        • NVACTION_GETFROMNET - произошел опрос сети на наличие новых компов
        • NVACTION_GETFROMFILE - произошла загрузка хостлиста из файла
        • NVACTION_RECHECK - произошла перепроверка списка
        • NVACTION_RETRACE - произошла перетрассировка хостов списка
      • NVACTION_ACTIVATE -приложение нетвью стало активным или наоборот ушло в фон. lp равно wParam сообщения WM_ACTIVATE которое получило окно NetView
      • NVACTION_MENUPOPUP -сообщение о том что нарисовалась меню, lp:
        • NVMENUFLAG_MAIN - появилось меню Plug-ins
        • NVMENUFLAG_CONTEXT -всплыло контекстное меню хостлиста
        • NVMENUFLAG_TRAY -всплыло контекстное меню иконки в области трея
      • NVACTION_IMGEXPORT - произошел экспорт визуальной карты с идентификатором lp.
    • tm - время когда произошло событие
  • Reserved - зарезервировано на будущее, должно быть установлено в NULL

Наверх

+DWORD __stdcall NVGetHostByTextA(void *Reserved, char* Txt,DWORD Flags);

Возвращает идентификатор хоста по его имени или IP адресу. Может так же создать новый хост если в хостлист нету подходящего

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • Txt - имя или IP адрес
  • Flags - могут содержать
    • +NVOBJ_FORCENEW - для создания нового хоста
    • +NVOBJ_HOSTNOIP - по умолчанию при указании NVOBJ_FORCENEW нетвью будет пытатся определить днс имя\ип нового хоста по заданному тексту. Если указать этот флаг - то текст будет именем нового хоста а ип определятся не будет - будет создан хост без IP адреса.

Наверх

+DWORD __stdcall NVGetHostA(void *Reserved, NVHOST* Hst,DWORD Flags);

Получает сведения о хосте по его идентификатору либо получает сведения о самом первом хосте в списке, что позволяет перечислять все хосты хостлиста.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • Hst указывает на структуру NVHOST в которой проинициализировано поле Id в идентификатор нужного хоста или в 0 если нужно найти самый первый хост списка. Функция инициализирует остальные поля структуры, в том числе nextid что позволяет перечислять все хосты списка.
  • Flags может быть 0 или NVOBJ_SELECTED. Если указан NVOBJ_SELECTED то перечисляются только визуально выделенные в хостлисте хосты.

Наверх

+DWORD __stdcall NVSetHostA(void *Reserved, NVHOST* Hst,DWORD Flags);

Позволяет добавить новый хост в хостлист или изменить сведения об указанном хосте. Возвращает идентификатор хоста.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • Hst указывает на структуру NVHOST в которой проинициализировано поле Id в идентификатор нужного хоста или в 0 если нужно добавить новый хост. Так же необходимо проинициализировать остальные поля за исключением nextid. NetView в процессе добавляеня хоста сопоставит имя и адрес нового хоста с уже существующими и может вернуть идентификатор уже существующего хоста даже если перед вызовом Id=0
  • Flags - зарезервировано. Установите в 0.

Наверх

+DWORD __stdcall NVDelHostA(void *Reserved, NVHOST* Hst);

Удаляет хост из хостлиста.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • Hst указывает на структуру NVHOST в которой проинициализировано поле Id в идентификатор нужного хоста

Наверх

+DWORD __stdcall NVGetMetaVarA(void *Reserved, DWORD HostID, char *VarName, char *DataBuff, DWORD *BuffSize);

Получает нужную метапеременную хоста по его имени или идентификатору. Если хост не найден возвращает 0, если в MetaVar недостаточен размер буфера возвращает 2, если все прошло хорошо возвращает 1.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • HostID - идентификатор существующего хоста, значение одной из переменных которого надо получить
  • VarName - имя метапеременной значение которой нужно получить. Максимум 127 символов длиной. Чувствителен к регистру. Завершается нулевым символом как и обычная NULL TERMINATED строка.
  • DataBuff - указывает на массив куда будут записаны данные метапеременной. Данные не будут NULL TERMINATED - нулевой символ не рассматривается как конец данных. Если в метапеременной строка то вы должны обнулить буфер перед вызовом функции или записать в конец данных 0 после ее возврата чтобы строка гарантированна была NULL TERMINATED.
  • BuffSize - указывает на переменную DWORD которая перед вызовом должна быть равна размеру памяти, отведенной под буфер, по возвращении эта переменная равна количеству байт данных метапеременной. Даже если метапеременная не была полностью записана в буфер (не хватило места и функция вернула значение 2) эта переменная указывает необходимое количество байт которое нужно для полного возврата переменной

Наверх

+DWORD __stdcall NVSetMetaVarA(void *Reserved, DWORD HostID, char *VarName, char *DataBuff, DWORD BuffSize);

Изменяет заданную метапеременную хоста по его имени или идентификатору. Если хост не найден или нет прав возвращает 0, если все OK то возвращается 1.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • HostID - идентификатор существующего хоста, значение одной из переменных которого надо получить
  • VarName - имя метапеременной значение которой нужно изменить. Максимум 127 символов длиной. Чувствителен к регистру. Завершается нулевым символом как и обычная NULL TERMINATED строка.
  • DataBuff - указывает на массив с данными метапеременной. Данные не будут NULL TERMINATED - нулевой символ не рассматривается как конец данных.
  • BuffSize - размер данных в байтах.

Наверх

+DWORD __stdcall NVGetListByTextA(void *Reserved, char *Txt,DWORD Flags);

Возвращает идентификатор существующего подсписка, может также создать новый подсписок. Возвращает идентификатор подсписка в случае успеха или 0 в случае облома.

  • Reserved - зарезервировано на будущее, должно быть установлено в NULL
  • Txt - название списка
  • Flags может быть 0 или +NVOBJ_FORCENEW если нужно создать новый список если таковой еще не существует.

Наверх

+DWORD __stdcall NVGetListA(void *Reserved, NVLIST* Lst);

Получает данные о списке по его идентификатору который указан в стркутуре Lst. Аналогично NVGetHostA позволяет перечислять все списки. Возвращает идентификатор списка в случае успеха или 0 в случае облома.

Наверх

+DWORD __stdcall NVSetListA(void *Reserved, NVLIST* Lst);

Изменяет данные о подсписке. Возвращает идентификатор списка в случае успеха или 0 в случае облома.

Наверх

+DWORD __stdcall NVDelListA(void *Reserved, NVLIST* Lst);

Удаляет подсписок по его идентификатору у Lst. Возвращает 1 в случае успеха или 0 в случае облома.

Наверх

+DWORD __stdcall NVGetLineA(void *Reserved, NVLINE *Ln);

Получает сведения о линии по ее индексу указанному в Ln. Если индекс указать -1 то в структуру Ln ничего не будет возвращено. Сама функция всегда возвращает общее количество линий.

Наверх

+DWORD __stdcall NVSetLineA(void *Reserved, NVLINE *Ln);

Устанавливает сведения о линии по ее индексу указанному в Ln. Если индекс указать -1 то будет добавлена новая линия. Сама функция возвращает общее количество линий после этой операции или 0 в случае облома (кстати если в списке линий нет то тоже будет возвращен 0).

Наверх

+DWORD __stdcall NVDelLineA(void *Reserved, NVLINE *Ln);

Удаляет линию из списка. Сама функция возвращает общее количество линий после этой операции или 0 в случае облома (кстати если в списке линий нет то тоже будет возвращен 0).

Наверх

+DWORD __stdcall NVGetAreaA(void *Reserved, NVAREA *Ar);

Получает данные об области по ее идентификатору который указан в стркутуре Ar. Аналогично NVGetHostA позволяет перечислять все области. Возвращает идентификатор области в случае успеха или 0 в случае облома.

Наверх

+DWORD __stdcall NVSetAreaA(void *Reserved, NVAREA *Ar);

Устанавливает все данные об указанной области. Учтито что на одном списке не могут существовать 2 области с одинаковым name. Возвращает идентификатор в случае успеха, 0 в случае общей ошибки, -1 в случае наличия области с таким же названием на списке

Наверх

+DWORD __stdcall NVDelAreaA(void *Reserved, NVAREA *Ar);

Удаляет область. Возвращает 1 в случае успеха или 0 в случае ошибки.

Наверх


Плагины NetView

Плагины NetView :: Пример работы с NetView из внешней программы

/*

Данная программа скомпилированная в MS VC6.0 как консольное Win32 приложение получает от работающего НВ и выводит список хостов, их состояние, записывает и выводит затем значение тестовой метапеременной, после чего стирает ее, затем переходит в режим ожидания событий НВ выводя их коды, параметры и время. При этом используются функции NVGetHostA, NVGetMetaVarA, NVSetMetaVarA, NVSetEventHandlerProc, NVGetNetViewStatus.

(с)Killer{R}, 2004

*/

// nvcall.cpp : Defines the entry point for the console application.
//
#pragma pack(1)
#include "stdafx.h"
#include "windows.h"
#include "nvplugn.h"
#include "malloc.h"
typedef DWORD (WINAPI *NVGetHostx)(void *Reserved, NVHOST *nvh,DWORD flags);
typedef DWORD (WINAPI *NVGetMetaVarx)(void *Reserved, DWORD HostID,char *VarName, char *DataBuff,DWORD *BuffSize);
typedef DWORD (WINAPI *NVSetMetaVarx)(void *Reserved, DWORD HostID,char *VarName, char *DataBuff,DWORD BuffSize);
typedef DWORD (WINAPI *NVGetNetViewStatusx)(void *Reserved);
typedef DWORD (WINAPI *NVSetEventHandlerProcx)(void *proc);

NVGetHostx NVGetHost;
NVGetMetaVarx NVGetMetaVar;
NVSetMetaVarx NVSetMetaVar;
NVGetNetViewStatusx NVGetNetViewStatus;

NVSetEventHandlerProcx NVSetEventHandlerProc;
int stopped=0;

LRESULT CALLBACK eventproc(DWORD msg, DWORD wp, DWORD lp, DWORD tm)
{
printf("Event=%u WP=%u LP=%u TIME=%u\n",msg,wp,lp,tm);
if(msg==WM_QUIT)
{
printf("NetView stopped\n");
stopped=1;
}
return 1;
}

int main(int argc, char* argv[])
{
HINSTANCE lib=LoadLibrary("nvapi.dll");
if(!lib){printf("Can't load NVAPI.DLL\n");return -1;};
NVGetHost=(NVGetHostx)GetProcAddress(lib,"NVGetHostA");
NVGetMetaVar=(NVGetMetaVarx)GetProcAddress(lib,"NVGetMetaVarA");
NVSetMetaVar=(NVSetMetaVarx)GetProcAddress(lib,"NVSetMetaVarA");
NVGetNetViewStatus=(NVGetNetViewStatusx)GetProcAddress(lib,"NVGetNetViewStatus");
NVSetEventHandlerProc=(NVSetEventHandlerProcx)GetProcAddress(lib,"NVSetEventHandlerProc");
NVSetEventHandlerProc(&eventproc);

DWORD ret=NVGetNetViewStatus(0);
DWORD ver=HIWORD(ret);
DWORD verh=(ver>>8)&0xff;
DWORD verl=(ver)&0xff;
bool IsFullAccess=false;
switch(LOWORD(ret))
{
case 0:printf("NetView is not accessible\n");return -1;break;
case 1:printf("NetView v%u.%u in read-only mode\n",verh,verl);break;
case 2:printf("NetView v%u.%u in full access mode\n",verh,verl);IsFullAccess=true;break;
}

NVHOST hst; ZeroMemory(&hst,sizeof(hst));
do
{
hst.id=hst.nextid;hst.nextid=0;
NVGetHost(0,&hst,0);
if(hst.id)
{
char buff[1024];sprintf(buff+1,"%s\x09%s",hst.hostname,hst.hostip);
char varbuf[256];
ZeroMemory(varbuf,256);DWORD bufsz=255;
NVGetMetaVar(0,hst.id,"ison",varbuf,&bufsz);
buff[0]='?';
if(!strcmp(varbuf,"off"))buff[0]='-';
if(!strcmp(varbuf,"on"))buff[0]='+';
ZeroMemory(varbuf,256);bufsz=255;
NVGetMetaVar(0,hst.id,"ctime",varbuf,&bufsz);
strcat(buff,"\x09");strcat(buff,varbuf);
if(IsFullAccess)
{
NVSetMetaVar(0,hst.id,"mytestvar","TeSt",4);
ZeroMemory(varbuf,256);bufsz=255;
NVGetMetaVar(0,hst.id,"mytestvar",varbuf,&bufsz);
strcat(buff,"\x09");strcat(buff,varbuf);
NVSetMetaVar(0,hst.id,"mytestvar",0,0);
}
strcat(buff,"\n");
printf(buff);
}
}while(hst.nextid);
printf("Enumeration completed. Waiting for NetView events. Press Ctrl+C for exit.\n");
while(!stopped)Sleep(300);

return 0;
}

Наверх


Плагины NetView

Общие принципы создания плагинов и их взаимодействие с NetView

Плагины для нетвью могут быть двух типов:

Любые процессы в системе могут взаимодействовать с нетвью версии 2.80 и выше посредством функций экспортируемый nvapi.dll которая копируется в системный каталог SYSTEM или SYSTEM32 во время установки NetView. Почитать про эти функции можно здесь.

Динамически присоединяемые библиотеки .dll загружаемые NetView и экспортирующие три функции. Обязательные из них только две:

NVPluginGetInfo - вызывается при запуске NetView. Имеет единственный параметр - указатель на структуру NVPLUGININFO. При вызове функции нетвью сам выделяет память для этой структуры, так же устанавливает поле nvver равное своей версии. На основании этого плагин может вернуть из функции значение 0 и он не появится в списке досупных плагинов (например если установленная версия нетвью не поддерживает некоторые необходимые функции), либо - 1 тогда плагин будет доступен для загрузки. Плагин так же должен установить в поле retver свою версию и скопировать в plname и retstr строки размером в 63 и 127 символов максимум, первоя строка - имя плагина а вторая - краткое описание. Остальные поля при вызове этой функции не инициализированы и не должны использоваться. Примерный код этой функции:

DWORD WINAPI NVPluginGetInfo(LPNVPLUGININFO nvpi)
{
nvpi->retver.hi=1;nvpi->retver.lo=0;//Версия нашего плагина - 1.0
strcpy(nvpi->plname,"Cool plugin");//Название плагина. 63 символа максимум
strcpy(nvpi->retstr,"Sample NetView plug-in by Killer{R}");//Краткий комментарий. 127 символов максимум
return ((nvpi->nvver.hi>2)||(nvpi->nvver.lo>71));//Плагин может работать на NetView выше 2.71
}

NVPluginGo - собственно функция, запускающая исполнение плагина, при возврате из этой функции ( или при исключении в ней) нетвью считает что плагин был выгружен. Для вызова этой функции нетвью создает новый поток. Параметр функции - указатель на структуру NVPLUGINGOINFO, подробное описание полей которой Вы можете узнать из nvplugn.h файла. В этой структуре поле nvmainwnd - хэндл основного окна нетвью. Может использоваться как Parent окно для плагинов. nvwnd - хэндл окна-обработчика сообщений плагина. Плагин общается с нетвью посредством Windows messages. Нетвью шлет сообщения потоку плагина через PostThreadMessage, плагин может слать сообщения окну nvwnd. При этом для завершения выполнения плагина нетвью шлет ему сообщение WM_QUIT после получения которого плагин должен совершить все процедуры своей деинициализации и завершить выполнение функции NVPluginGo. Примерный вид NVPluginGo:

DWORD WINAPI NVPluginGo(LPNVPLUGINGOINFO plgi)
{
init();//основные действия инициализации
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
workmessage(msg.message,msg.wParam,msg.lParam);//наша функция обработки сообщений от нетвью
DispatchMessage( &msg );
}
deinit();//деинициализация
return 0;
}

На верх


Плагины NetView

Взаимодействие с хостлистом

Функции работы с хостлистом можно разделить на следующие части:

Собственно работа с хостами - удаление, добавление, получение информации о хосте, получение информации о выделенных в данный момент в списке хостах - реализованы в виде сообщений NMPN_OBJECT. Имена хостов должны быть в нижнем регистре. Для операций с хостом lParam указывает на структуру NVHOST wParam может принимать следующие комбинации флагов:

NVOBJ_GETHOST - В структуре NVHOST необходимо указать id существующего хоста для получени информации о нем, либо 0 - тогда будет возвращена информация (в том числе и id) первого хоста в списке

Если комбинировать NVOBJ_GETHOST | NVOBJ_SELECTED то будет возвращен следующий выделенный хост после указанного в id (либо первый выделенный если id==0). В nextid возвращается id следующего хоста, что позволяет проходить по списку всех, либо выделенных хостов. Ниже приведен пример функции перечисляющей все выделенный хосты и передающей их по порядку процедуре yourstuff(NVHOST *):

NVHOST hst;ZeroMemory(&hst,sizeof(hst));
SendMessage(plgi->nvwnd,NMPN_OBJECT,NVOBJ_SELECTED|NVOBJ_GETHOST,(DWORD)&hst);
while(hst.id)
{
yourstuff(&hst);

hst.id=hst.nextid;
if(hst.id)SendMessage(plgi->nvwnd,NMPN_OBJECT,NVOBJ_SELECTED|NVOBJ_GETHOST,(DWORD)&hst);
}

NVOBJ_SETHOST - В структуре NVHOST указать id существующего хоста либо 0 для лобавления нового в список. При этом все поля структуры будут перенесены в хост.

NVOBJ_DELHOST - В структуре NVHOST указать id существующего хоста. Он будет удален полностью.

NVOBJ_HOSTBYTEXT - lParam указывает на char * строку - имя хоста или ip адрес. Может быть скомбинировано с NVOBJ_FORCENEW - в этом случае нетвью добавит новый хост, если не сможет найти существующий по указанному тексту. Сообщение возвращает id найденного или добавленного хоста. Если указать флаг NVOBJ_HOSTNOIP то будет добавлен хост с пустым IP без определения адреса по имени.

Работа с хостлистами. lParam указывает на NVLIST структуру. wParam может иметь следующие флаги:

NVOBJ_GETLIST - то же самое что и NVOBJ_GETHOST для хостов, за исключением того что NVOBJ_SELECTED не действует (пока, потом сделаю так чтобы при указании этого флага возвращался активынй список)

NVOBJ_SETLIST - принцип тот же что и NVOBJ_SETHOST

NVOBJ_DELLIST - удаляет список, id которого передается в lParam (заметьте для NVOBJ_DELHOST в lParam указывается структура NVHOST, а здесь только list id)

NVOBJ_LISTBYTEXT - аналогично NVOBJ_HOSTBYTEXT

Работа с линиями визуальной карты. Принципиально отличается от первых двух пунктов тем что линии нетвью хранит в виде массива а не списка для ускорения доступа и прорисовки.

NVOBJ_GETLINE - lParam указывает на NVLINE, в которой указан в index порядковый индекс линии, сообщение возвращает полное количество линий в хостлисте. Нетвью заполнчет поля структуры для указанной линии.

NVOBJ_SETLINE - lParam указывает на NVLINE, в которой заданы все параметры. Индекс следует установить в -1 для создания новой линии либо он должен быть равен индексу существующей линии. Нетвью установит параметры линии и перерисует ее.

NVOBJ_DELLINE - lParam равен индексу линии, которую нужно удалить

Работа с областями - визуальными прямоугольниками на карте. Примерно так же как с хостлистами и хостами:
NVOBJ_GETAREA - lParam указывает на структуру NVAREA в которой заполнено поле id в идентификатор существующей области или в 0 для получения самой первой области в списке. Позволяет обходить список областей аналогично работе с хостами и хостлистами. Возвращает идентификатор в случае успеха или 0 в случае ошибки.
NVOBJ_SETAREA - lParam указывает на структуру NVAREA в которой заполнены все поля. id установлен либо в идентификатор области которую нужно поменять либо в 0 - тогда будет создана новая область на заданном хостлисте и с заданным именем. Учтите что на одном хостлисте области могут иметь только уникальные имена. Возвращает идентификатор в случае успеха, 0 - в случае глобального облома, -1 - в том случае если плагин пытается присвоит области имя уже существующей на карте другой области с таким же именем.
NVOBJ_DELAREA - lParam установлен в идентификатор id области подлежащей удалению. Возвращает 1 в случае успеха и 0 - в случае облома.

Работа с метаданными хостов. Метаданные - это строка, ассоциированная с хостом и имеющая уникальное в пределах этого хоста имя. Строка и ее имя не может содержать в себе символы '#','$',#0,#13,#10 но это ограничение будет снято в будущих версиях. В принципе ничто не мешает записать в метаданные полную медкарточку пользователя компа, но этого лучше не делать из соображени быстродействия. Если будете использовать свои метапеременные настоятельно рекомендую написать мне письмо для получения уникального начала имен переменных (а-ля "abcd_"), что позволит избежать путаницы с другими плагинами. Имена переменных чувствительны к регистру букв. Работа с ними осуществлется с помощью сообщения NMPN_METAVAR, lParam указывает на структуру NVMETAVAR, причем для нее должно быть выделено достаточно памяти. wParam принимает значения:

NVMETAVAR_GET - перед вызовом указать hostname и varname в NVMETAVAR. Если переменной не существует будет возвращена пустая строка. Если максимальная граница строки неизвестна, нужно установить vallen равным нулю, после вызова сообщения нетвью установит vallen в необходимое значение. Затем выделить нужное кол-во памяти под структуру и вызвать сообщение еще раз. Примерный код этого дела:

LPNVMETAVAR mv=(LPNVMETAVAR)malloc(256);
ZeroMemory(mv,256);
mv->host.id=HostId;

strcpy(mv->varname,"abcd_myvar");
mv->vallen=0;
SendMessage(plgi->nvwnd,NMPN_METAVAR,NVMETAVAR_GET|NVMETAVAR_USEID,(DWORD)mv);
mv=(LPNVMETAVAR)realloc(mv,256+mv->vallen);//выделили необходимое кол-во памяти
ZeroMemory(mv->val,mv->vallen+1);

SendMessage(plgi->nvwnd,NMPN_METAVAR,NVMETAVAR_GET|NVMETAVAR_USEID,(DWORD)mv);
//теперь в mv->val мы имеем NULL TERMINATED строку длиной mv->vallen

//делаем с ней все что хотим и...:

free(mv);

NVMETAVAR_SET - указать все параметры в NVMETAVAR. Если строка имеет нулевую длину она будет удалена.

LPNVMETAVAR mv=(LPNVMETAVAR)malloc(256+val.Length());
strcpy(mv->hostname,"coolhost");
strcpy(mv->varname,"abcd_myvar");
strcpy(mv->val,"my metavar string");
mv->vallen=val.Length();
SendMessage(plgi->nvwnd,NMPN_METAVAR,NVMETAVAR_SET,(DWORD)mv);
free(mv);

Нетвью хранит все параметры хостов в метапеременных. Назначение некоторых (далеко не всех) встроенных метапеременных:

Список основных метапеременных можно найти здесь

Для применения изменений в большинстве внутренних метапеременных достаточно сделать NMPN_ACTION с флагом NVACTION_SETSTATE указав в lParam соответствующий host id.

На верх


Плагины NetView

Создание элементов меню плагина в интерфейсе NetView

Плагин может создавать пункты меню в подменю Plug-ins главного меню, в контекстном меню списка плагинов и в контекстном меню иконки в System Tray. Так же можно создавать пункты меню, являющиеся дочерними для уже созданных, что позволяет делать иерархические меню. Плагин должен при выходе уничтожать пункты меню, в противном случае они пропадут только при щелчке мышки на пункте меню несуществующего плагина. Создание, изменение и удаление пункта меню осуществляется посредством управляющего сообщения NMPN_MENU. Параметр wParam может принимать значения: MENUACTION_SET - создает или изменяет элемент меню. lParam указывает на структуру NVMENUINFO.

Назначение полей NVMENUINFO:

DWORD id: уникальный идентификатор элемента меню (фактически является указателем на VCL объект TMenuItem). Для создания нового элемента меню установите это поле в 0. Для поседующей модификации элемента используйте значение, которое запишет в это поле NetView после завершения обработки сообщения.

DWORD msg: сообщение которое нетвью будет слать при нажатии юзером пункта меню потоку с ThreadID равным указанному в поле...

DWORD tid: ThreadID потока плагина, обрабатывающего сообщения о нажатии пункта меню от нетвью.

HICON icon - иконка которая будет рисоваться в меню, либо 0.

DWORD parentid - идентификатор уже созданной родительской менюшки, либо 0.

char text[64] - текст менюшки

DWORD flags - NVMENUFLAG_MAIN для создания меню в Plug-ins, NVMENUFLAG_CONTEXT - для создания пункта в контекстном меню, NVMENUFLAG_TRAY - меню иконки в трее. Насчет остальных флагов - см файл nvplugn.h

Плигин может динамически создавать и менять элементы меню, даже тогда когда оно на экране. Примерный код функций создания, модификации и удаления созданной менюшки:

Создаем менюшки:

NVMENUINFO mi,mic;

void __fastcall init()

{

//создаем пункт в главном меню

ZeroMemory(&mi,sizeof(mi));
strcpy(mi.text,"Sample");
mi.tid=GetCurrentThreadId();//поток которому нетвью будет слать сообщение о нажатии меню
mi.msg=WM_USER+0x501;//это сообщение пошлет нетвью указанному потоку при выборе меню
mi.flags=NVMENUFLAG_MAIN;
SendMessage(plgi->nvwnd,NMPN_MENU,NVMENUACTION_SET,(DWORD)&mi);

//создаем подпункт в созданном элементе

ZeroMemory(&miс,sizeof(miс));
strcpy(miс.text,"Sample child menu");
miс.tid=GetCurrentThreadId();
miс.msg=WM_USER+0x502;
mic.parentid=mi.id;
SendMessage(plgi->nvwnd,NMPN_MENU,NVMENUACTION_SET,(DWORD)&mic);
}

Обработчик сообщений нетвью, реагирующий на нажатие дочернего меню(выкидывающий MessageBox и включающий-выключающий check-галочку в менюшке:

void __fastcall workmessage(DWORD msg, DWORD wp, DWORD lp)
{
if(msg==WM_USER+0x502)

{

MessageBox(0,"User clicked my menu item","Sample plug-in",0);

mic.flags^=NVMENUFLAG_CHECKED;

SendMessage(plgi->nvwnd,NMPN_MENU,NVMENUACTION_SET,(DWORD)&mic);

}
}

Следующая процедура корректно удяляет созданные менюшки перед завершением работы плагина:

void __fastcall deinit()

{

SendMessage(plgi->nvwnd,NMPN_MENU,NVMENUACTION_DEL,mic.id);
SendMessage(plgi->nvwnd,NMPN_MENU,NVMENUACTION_DEL,mi.id);
}

На верх


Плагины NetView

Сообщения NMNP_ALERT, NMPN_ACTION и NMNP_ACTION

Сообщение NMNP_ALERT нетвью шлет плагинам c различными флагами в wParamв следующих случаях:

NVALERT_NETWATCHER - когда нетвочер засекает новое подключение. В lParam указан host id пользователя или 0, если все очень плохо

NVALERT_ALARMHOST - хост с включенным оповещением изменил свое online состояние. lParam аналогично.

NVALERT_TERMINAL - подключение\отключение в терминале, работающем в Listen режиме. lParam аналогично.

NVALERT_REDIRECTOR - Клиент подключился к TCP мосту. lParam аналогично.

NVALERT_IPLOGGER - IP logger задетектил что кто-то Вас сканирует или пытается зафлудить. В lParam ниче нету.

NVALERT_NETSEARCHER - поисковик файлов завершил поиск.

В wParam могут быть установлены следующие битовые флаги:

NVALERTMASK_CANCEL - устанавливается если длительное действие завершилось (Юзер щелкнул по иконке Alarm хоста, в NetWatcher'е отключился юзверь (сам или не совсем), в терминале или TCP мосте отключился клиент. IP logger - Вас перестали ломать (либо забили либо взломали).

NVALERTMASK_NWBLACK - юзер нетвочера из kicklist'а

NVALERTMASK_NWWHITE - юзер нетвочера из keeplist'а

NVALERTMASK_ILLIST - IPLogger - Вас сканируют

NVALERTMASK_ILICMP - IPLogger - Вас флудят. Пингами.

NVALERTMASK_ILSYN - IPLogger - Вас флудят TCP SYN'ами.

NVALERTMASK_ILUDP - IPLogger - Вас флудят UDP пакетами.

NVALERTMASK_HOSTUP - Alarm хост включился

NVALERTMASK_HOSTDOWN - Alarm хост выключился

Сообщение NMPN_ACTION плагин шлет нетвью с флагами в wParam для того чтобы:

NVACTION_GETFROMNET | NVACTION_LIST - обновить хостлист из сети

NVACTION_GETFROMFILE | NVACTION_LIST -обновить хостлист из файла, в lParam char * на путь к файлу. Или 0 - будет перечитан дефолтовый хостлист.

NVACTION_RECHECK - перепроверяет хост с id указанном в lParam. Если добавить флаг NVACTION_LIST будет проверен список с list id в lParam, Либо все списки если там 0.

NVACTION_RETRACE - перетрассирует хосты, флаги те же что и в NVACTION_RECHECK

NVACTION_CLEARLIST - очищает указанный в lParam хостлист, либо все вместе если указать 0.

NVACTION_OPEN - открыть указанный в lParam хост.

NVACTION_SAVELMHOSTS - сохраняет весь список хостов в файл с путем указанным в lParam (если указать 0 сохранит в файл по умолчанию)

NVACTION_SETSTATE - обновляет хост. lParam - host id.

NVACTION_EDIT - открывает окошко редактирования указанного хоста. Если юзер нажмет отмену возвратит 0, иначе host id.

NVACTION_IMGEXPORT - инициирует экспорт визуальной карты, возвращает 0 при ошибке (например список не в режиме Visual map).

Сообщение NMNP_ACTION нетвью шлет плагину с следующими флагами в wParam (флаги могут комбинироваться):

NVACTION_GETFROMNET - указывается после того как нетвью завершит обновление из сети.

NVACTION_GETFROMFILE - указывается после того как нетвью завершит обновление из файла.

NVACTION_RECHECK - указывается после того как нетвью завершит проверку списка.

NVACTION_RETRACE - указывается после того как нетвью завершит трассировку списка.

NVACTION_ACTIVATE - окно нетвью было (де)активировано. В lParam указывается wParam сообщения WM_ACTIVATE.

NVACTION_MENUPOPUP - шлется когда юзер вызывает соответствующее меню. В lParam могут быть NVMENUFLAG_MAIN, NVMENUFLAG_CONTEXT или NVMENUFLAG_TRAY.

NVACTION_IMGEXPORT - шлется по завершению экпорта карты в .jpg файл (в lParam list id).
Сообщение NMNP_HOSTMSG НВ шлет плагину если юзер кликнул 2 раза на хосте, у которого в строке специальной команды указано hostmsg:N, где N - произвольное число. wParam - равен N, lParam - равен идентификатору хоста

На верх


Плагины NetView

Плагины NetView :: Колбяки (Callbacks)

Плагин может установить процедуру-обработчик таких событий как перепроверка хоста для которого отключена стандартная перепроверка (пингом или сканированием) и событие обновления состояния хоста инициируемое каждый раз когда NetView хочет обновить состояние хоста например после перепроверки или после изменения картинки для того чтобы эти изменения визуально отобразились. Эта возможность появилась в NetView 2.80 и позволяет корректнее добавлять в НВ свои процедуры перепроверки. Делается это все при помощи сообщения NMPN_CALLBACK. Например если вы хотите установить обработчик событий перепроверки и обновления состояние то его надо вначале объявить соответствующим образом:

LRESULT CALLBACK MyCallbackProc(DWORD Code, DWORD ObjId, void *reserved)

{

//do something...

return 1;

}

Включение обработчика делается следующим образом:

SendMessage(nvwnd,NMPN_CALLBACK, NVCB_CUSTOM_RECHECK|NVCB_PRE_SETSTATE, (DWORD)&MyCallbackProc);

Перед завершением работы плагина обработчик обязательно нужно отключить, иначе вылетит сообщение об ошибке:

SendMessage(nvwnd,NMPN_CALLBACK, NVCB_REMOVECALLBACK|NVCB_CUSTOM_RECHECK|NVCB_PRE_SETSTATE, (DWORD)&MyCallbackProc);

Параметры процедуры обработчика:

  • Code - код события. NVCB_CUSTOM_RECHECK или NVCB_PRE_SETSTATE соответственно.
  • ObjId - идентификатор хоста для которого проводится перепроверка или обновление. Этот идентификатор можно использовать с остальными функциями работы с хостами и их метапеременными.


Лицензия

NetView поставляется как FREEWARE для любых видов использования. Запрещается распространение NetView на условиях, отличных от данной лицензии.
NetView распространяется свободно, при условии того, что настоящий дистрибутив не изменен. При распространении на CD-ROM с программным обеспечением просьба сообщать автору.

ПРОГРАММА ПОСТАВЛЯЕТСЯ ПО ПРИНЦИПУ "AS IS". НИКАКИХ ГАРАНТИЙ НЕ ПРИЛАГАЕТСЯ И НЕ ПРЕДУСМАТРИВАЕТСЯ. ВЫ ИСПОЛЬЗУЕТЕ ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НА СВОЙ РИСК. АВТОР НЕ БУДЕТ ОТВЕЧАТЬ НИ ЗА КАКИЕ ПОТЕРИ ИЛИ ИСКАЖЕНИЯ ДАННЫХ, ЛЮБУЮ УПУЩЕННУЮ ВЫГОДУ В ПРОЦЕССЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.


Контактная информация

Автор программы: Killer{R}

Ваши вопросы, пожелания, предложения можете отсылать на мыло: Killer{R}

Автор хелпа: Владимир Манов aka VoVaN

Ваши вопросы, пожелания и информацию об ошибках шлите на мыло: VoVaN


Плагины NetView

Скрипты NetView

Скрипты нетвью это программы с синтаксисом языка Pascal, но с добавленными некоторыми дополнительными функциями. В качестве скриптового "движка" был использован Innerfuse Pascal Script, он поддерживает большинство фич обычного Pascal'я, и подробно о нем можно почитать (и скачать) на сайте его производителя - http://www.carlo-kok.com. Если вы захотите использовать свои скрипты, вам придется записать файл скрипта в соответствующий каталог в \SCRIPTS и совершить некоторые дополнительные действия (см. ниже). Это можно сделать редактором скриптов самого NetView или любым другим текстовым редактором. Перезапуска нетвью при изменениях текста скрипта не требуется, требуется только перезапуск скрипта при необходимости. Скрипты могут использоваться для следующих целей:

  • Скрипты общего назначения. Раньше такие скрипты исполнял плагин Scripter, теперь он не нужен - их может использовать сам NetView. Такие скрипты могут управлять хостлистом, реагировать на основные события netview, вобщем полезная вещь. Сами скрипты лежат в \Scripts\Scripter а управление ими (загрузка\выгрузка\автозапуск) находится на закладке Scripts окна настроек Preferences. После установки вы там найдете следующие скрипты:
    • emailalert.nvs - как следует из название скрипт предназачен для оповещения по почте. По умолчанию скрипт умеет оповещать о включении\выключении хостов помеченных как alertable. Отсылка почты происходит при помощи небольшой внешней программы-мэйлера QMAILER.EXE которую можно найти в каталоге NetView
    • htmlreport.nvs - умеет сохранять список включенных хостов после каждой перепроверки или обновления списка. По умолчанию список сохраняется в \Export\htmlreport.html но путь и имя легко меняются в тексте скрипта что позволяет например сохранять файл как \Scripts\HTTP\index.html и затем каждый в сети сможет посмотреть состояние хостлиста и открыть включенные в данный момент компьютеры набрав ваш адрес в строке браузера. Если конечно у вас включен скрипт Port listener'а listen_http.nvs.
    • namechanges.nvs - ведет лог изменения имен хостов хостлиста
    • statelogger.nvs - ведет лог изменения состояния хостов хостлиста (метапеременная ison)
    • togglestate.nvs - создает в контекстом меню хоста пункт позволяющий менять online состояние хоста из меню вручную
    • Searcher_PHP_Base.nvs - после включения этот скрипт срабатывает после каждого речека и завершения работы NetSearcher'а, ищет в папке Scripts файлы заканчивающиеся на .FileList (созданные скриптом нетсичера Generate_FileList.nvs) и формирует по ним 2 файла - имя одного начинается со слова All. другой - Online. - в них соотвественно записи о найденных нетсичером файлах расположенные на любых, и на только включенных в последнем речеке хостах. Эти файлы затем могут использоваться PHP движком который можно найти в searcher_php.zip.
  • Скрипты Listener'а. В нетвью есть инструмент Port Listener, умеющий принимать TCP соединения на заданные порты. С помощью скриптов можно научить нетвью эмулировать многие службы, обманывая продвинутые сканеры портов, и даже позволяя организовать некоторые сервисы по-настоящему. В листенере скрипты привязываются к номерам портов, поэтому если вы захотите написать и подключить свой скрипт то вам необходимо будет добавить файл скрипта в \Scripts\Listener и добавивнужный порт в портлист сопоставить ему ваш скрипт. По умолчанию вместе с нетвью поставляются следующие Listener-скрипты:
    • ftp.nvs - позволяет эмулировать запрос на логин на FTP сервер. Всегда ругается что логин\пароль не верный.
    • http.nvs -позволяет организовать простейший HTTP сервер, позволяющий браузить на вашем компьютере HTML странички с картинками, а так же скачивать файлы по HTTP. При этом главная страница сайта должна находится в файле \scripts\HTTP\index.html, осталбные файлы и странички на которые есть ссылки из нее - тут же рядом.
    • netbus.nvs -скрипт, эмулирующий сервер довольно известного трояна NetBus. Со стороны выглядит совсем как живой Ж;-).
    • smtp.nvs -эмулирует SMTP сервер. Если ктото додумается отправить на ваш компьютер почту он все запишет в файл SMTPmail.txt в каталоге скриптов.
    • socks.nvs -шлет ответ что мол есть неанонимный сокс сервер и через 5 сек рвет конект. Если chr(2) поменять на chr(0) то сокс сервер станет анонимным Ж;-).
    • telnet.nvs -простейшая эмуляция TELNET сервера с анонимным доступом. Умеет делать ls и quit. На cd ругается что недостаточно прав Ж;-).
    • raccess.nvs -скрипт, позволяющий удаленно управлять состоянием хостов в хостлисте. Полезен для например мониторинга состояний устройств, подключенных к другим компьютерам, и не имеющих IP адреса. Для этого надо запустить на том компьютере утилиту, которая будет следить за состоянием такого устройства и связываться с NetView, управляя хостлистом. Для безопасности в скрипте допущена синтаксическая ошибка - буква Z в самом начале скрипта - потому как если включить этот скрипт не сменив пароль по умолчанию то можно дать шанс злоумышленнику удаленно управлять хостлистом.
  • Скрипты Network scaner'а. Позволяют организовать продвинутое сканирование TCP портов. Скрипты лежат в \Scripts\Scaner. Если надо добавить свой скрипт, то открываете там файл nvscripts.ini, добавляете в него секцию [TCP_#] для TCP портов или [UDP_#] для UDP, где # - номер порта в десятичном представлении и в ней параметр script=filename.nvs. За неимением времени и достаточных сведений пока есть только экзампловый скрипт для сканирования нетбаса (scan_netbus.nvs).
  • Скрипты Terminal'а. Терминал нетвью по сути есть связка нетвью, выполняющего все функции ввода\вывода текстовой инфы для юзера а так же функции передачи данных по сети и скрипта, который управляет всем этим делом. Такая организация позволяет зная лишь Pascal писать TCP клиенты и многопотоковые серверы на скриптах. Например можно искать дырки на удаленном сервере, написать свой клиент для какого нибудь текстового протокола, например довольно несложно написать IRC бота. Если хотите добавить свой скрипт нужно добавить свой .nvs файл в каталог \Scripts\Terminal. Вместе с нетвью поставляются следующие скрипты для терминала:
    • raw.nvs -как видно из названия это RAW терминал. То есть нажал клавишу - ушел байт. Ввел строчку внизу - ушла строчка как есть. Пришли данные - прямо в чистом виде и отобразились на жкране терминала.
    • chat.nvs -скрипт, позволяющий организовать на нетвью простейший чат. Для этого ктото должен запустить этот скрипт в серверном режима, а осталбные должны на него конектится и разговаривать.
    • telnet.nvs -самый натуральный, правда слегка кривоватый telnet, с поддержкой ANSI текстовой графики. Из достоинств - если вы выделите текст в терминале и нажмете Ctrl+Ins он скопируется в буфер обмена (как это ни странно Ж)). А если вы потом вставите его в каком-нибудь Word'е - он вставится с сохранением всей псевдографики и цветов. А еще он лучше чем обычный виндовый Telnet понимает русские символы.
    • whois.nvs -скрипт для обращения к whois сервисам для получения информации о ИП адресах и доменных именах
  • Скрипты NetSearcher'а. Позволяют обрабатывать результаты поиска файлов в реальном времени. Имеются 2 скрипта:
    • Generate_FileList.nvs - этот скрипт генерирует специальный файллист в каталог \Scripts и имеющий расширения .FileList - этот файл затем может быть использован скриптом общего назначения Searcher_PHP_Base.nvs а тот в свою очередь генерирует файллист пригодный для создания интерфейса веб-странички поисковика файлов.
    • Generate_DataBase.nvs - этот скрипт сохраняет список файлов в Paradox'овую таблицу, требует чтобы на компьютере был установлен BDE (Идет с Delphi и C++ Builder'ом)