Ethernet библиотека WinPcap в C++Builder

Ethernet библиотека WinPcap в C++BuilderИтак Ethernet библиотека WinPcap для C++Builder6. Прежде чем воспользовать данной библиотекой необходимо установить на компьютер сниффер Wireshark в составе которого имеется WinPcap. Это совсем несложно. Некоторые поясняющие картинки ниже по тексту. Далее будем предполагать что на компе уже установлен C++Builder6 или его меньший или старший братец типа C++Builder5, Embarcedero и т. п.

 Установка Wireshark

Установка WinPcap

Автоматический старт драйвера WinPcap

Для того, чтобы проверить работу библиотеки в действии создадим в C++Builder6 небольшой тестовый проект который посредством библиотеки WinPcap будет отправлять в Ethernet сеть небольшой пакет на MAC адрес сетевой карты компа и принимать его. Примерно так.

Прием передача по Ethernet

Библиотека WinPcap позволяет отправлять в сеть и принимать из сети данные с любым MAC адресом сетевой карты. Функция приема WinPcap будет принимать любой пакет из сети. Далее нужный пакет можно отфильтровать по MAC адресу назначения, который обычно находится в первых шести байтах Ethernet пакета. Для наглядности все выше сказанное реализовано в тестовом проекте.

Теперь главное. Установки Wireshark и WinPcap на Windows совершенно недостаточно для создания программы на C++Builder. Для использования функций библиотеки WinPcap в C++Builder необходимо установть в его папки файлы самой библиотки и прописать пути к ним. Но прежде их придется конвертировать в нужный формат.

Для этого можно воспользоваться встроенными средствами для конвертирования файлов C++Builder6. По порядку:
1. Скачать и распаковать источники с файлами библиотеки WinPcap.
2. С помощью встроенного в C++Builder файла coff2omf (путь к файлу ...:\Program Files\Borland\CBuilder6\Bin\) преобразовать файлы Packet.lib wpcap.lib командами  coff2omf.exe Packet.lib Packet1.lib и coff2omf.exe wpcap.lib wpcap1.lib в командной строке в файлы с другим именем типа Packet1.lib и wpcap1.lib. Полученные файлы будут меньше по размеру по сравнению с исходными.

Преобразование файлов WinPcap в другой формат

3. Переместить, с переименованием к исходным, тоесть к Packet.lib и wpcap.lib  полученные файлы в папку Lib с установленным C++Builder6, а также содержимое папки Include библиотеки WinPcap в соответствующую папку с установленным C++Builder6

Перемещение файлов библиотеки WinPcap в C++Builder

Все. Теперь можно создавать проекты в C++Builder6 на базе библиотеки WinPcap. Один малентький нюанс. При первой попытке компиляции возникает странная ошибка, которая убирается путем правки файла pcap.h

 Ошибка в файле pcap.h

Строку sys/time.h необходимо заменить на строку time.h

Кому лень возиться с преобразованием и исправлением, ниже ссылка с готовыми файлами библиотеки WinPcap для C++Builder, а также тестовый проект C++Builder6 по приему и передаче сырых Ethernet пакетов в Windows на базе библитеки WinPcap. Кому пригодится тестовый проект или у кого возникают вопросы или замечания по данной теме не забудьте оставить свой коммент.

Top.Mail.Ru