Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_БС ЭВМ .doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
272.38 Кб
Скачать

7. Рекомендуемая литература

1. Мэрдок, Келли. JavaScript: наглядный курс создания динамических Web-страниц.: Пер. с англ.: Уч. пос. - М.: Издательский дом "Вильямс", 2001. - 288 с.: ил. - Парал. тит. англ.

2. Логник. Все о создании динамических страниц для интернета. М.: Мовиком, 2001. - 348 с.: ил.

Лабораторная работа № 4 методы поиска файлов в сети

1. Цель работы

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

2. Теоретические сведения

Поиск файлов в сети можно осуществлять только в общедоступных (shared) папках. Для этого необходимо:

  1. знать IP-адрес компьютера в сети;

  2. знать имена общедоступных ресурсов в сети;

  3. прочитать содержимое каталога;

  4. просканировать файлы, находящиеся в общедоступных папках.

Функции, необходимые для осуществления поиска файлов в сети:

GetHostbyName - получает IP-адрес, соответствующий имени данного Internet-хоста.

Описание: string gethostbyname (string hostname)

Возвращает IP-адрес Internet-хоста, специфицированного параметром hostname.

GetHostbyAddr - получает имя Internet-хоста, соответствующее данному IP-адресу

Описание: string gethostbyaddr (string ip_address)

Возвращает имя Internet-хоста, специфицированного параметром ip_address. Если возникает ошибка, возвращает ip_address.

Для получения списка ресурсов локальной сети используются функции:

WNetOpenEnum - начать перечисление,

WNetEnumResource - перечислить ресурсы,

WNetCloseEnum - закончить перечисление.

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

FindFirstFile - ищет каталог файла, название которого соответствует указанному имени файла. FindFirstFile проверяет имена вложенных каталогов так же как и имена файлов.

Описание: HANDLE FindFirstFile(

LPCTSTR lpFileName, // имя файла

LPWIN32_FIND_DATA lpFindFileData // буфер данных);

lpFileName - указатель на символьную строку, оканчивающуюся символом «\0», которая определяет правильный каталог или путь и имя файла, которое может содержать символы подстановки (* и ?). Если  символьная строка заканчивается  символом подстановки, точкой или именем каталога, пользователь должен иметь доступ к корневому каталогу и всем вложенным в него каталогам. В версии ANSI этой функции, длина имени ограничена количеством символов, определяемых свойством MAX_PATH.

lpFindFileData - указатель на структуру WIN32_FIND_DATA, которая получает информацию о найденном файле или вложенном каталоге.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - дескриптор поиска, используемый в последующем вызове функции FindNextFile или FindClose.

Если функция завершается ошибкой, возвращаемое значение - INVALID_HANDLE_VALUE. Чтобы получить дополнительные данные об ошибке, используется функция GetLastError.

Замечания

Функция FindFirstFile открывает дескриптор  поиска  и возвращает информацию о первом файле, имя которого соответствует указанному образцу. Она ищет и длинные и короткие имена файла. После того, как дескриптор поиска был установлен,  функция FindNextFile используется, чтобы искать другие файлы, которые соответствуют некоторому шаблону. Когда дескриптор поиска больше не нужен, закройте  его, используя функцию FindClose.

В редких случаях, информация об атрибутах файла файловой системы NTFS  может быть не текущей, когда Вы вызываете эту функцию. Чтобы получить текущие атрибуты файла NTFS, вызовите функцию GetFileInformationByHandle. Эта функция ищет файлы только по имени; она не может использоваться для поиска на основе атрибута.

Нельзя использовать корневые каталоги как вводимую строку в параметре lpFileName  для функции FindFirstFile, с/без заключительного символа (\). Чтобы проверить файлы в корневом каталоге, используется запись вида: "C:\* ", далее, используя функцию FindNextFile просматривается содержимое каталога.

Чтобы получить атрибуты корневого каталога, можно использовать функцию GetFileAttributes.

Аналогично производятся действия с сетевыми ресурсами. Можно использовать для параметра lpFileName форму "\\server\service\*", но нельзя использовать lpFileName, который указывает на ресурс непосредственно, то есть "\\server\service".

Чтобы исследовать какой-либо каталог, а не корневой каталог, используйте соответствующий путь к этому каталогу без завершающего символа (\). Например, аргумент "C:\windows" возвратит информацию о каталоге "C:\windows", а не о каком-либо каталоге или файле в "C:\windows". Попытка открыть поиск с конечным обратным слэшем (\) будет всегда завершаться ошибкой.

3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

        1. Получить вариант задания у преподавателя.

        2. Разработать прикладную программу в соответствии с заданием.

        3. Продемонстрировать работающую программу преподавателю.

        4. Подготовить и защитить отчет.

4. Требования к оформлению отчета

Отчет должен содержать следующие разделы:

  • титульный лист

  • тему и цель;

  • задание по лабораторной работе;

  • текст программы;

  • тестовый пример;

  • выводы по проделанной работе.

5. Вариант Задания

  1. Разработать программу для поиска файлов формата *.doc на удаленном компьютере.

  2. Разработать программу для поиска файлов в корневом каталоге удаленного компьютера.

  3. Разработать программу для вывода содержимого сетевого диска удаленного компьютера.

6. Контрольные вопросы

    1. Каким способом организовать поиск файлов в сети?

    2. Какие функции работы в сети для поиска файлов Вам известны?

    3. Опишите параметры функции FindFirstFile?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]