Беспроводной API для Linux в C \ Stack Overflow

Я пытаюсь найти правильный способ, как повторно использовать существующие реализации инструментов Wi-Fi (IW) в собственном коде (C \ C ++). Мне нужно получить информацию о доступных AccessPoints в диапазоне (уровень сигнала, MAC-адрес и т. Д.). Я нашел пару примеров кодов (WEXT и другие), которые используют подход ioctl, но он выполняет пассивное сканирование (и я получаю новую информацию только раз в две минуты в моей сети) [Update1: Благодаря @fluter я знаю, что WEXT также может выполнять активное сканирование.]. Я обнаружил, что IW делает активное сканирование, и это то, что мне нужно. Итак, мой вопрос:

Есть ли способ использовать iw-код в моем собственном приложении без разбора его исходного кода на куски, или, может быть, для этой цели существует беспроводной API?

(Update1: с базовыми примерами кода для начала.)

Подобный вопрос

UPDATE2Я пересмотрел свою задачу и обнаружил, что информации AP недостаточно для меня, мне также нужно собирать данные о клиентах. Это приводит меня к анализу пакетов Wi-Fi и лучшему инструменту, который я нашел для этого, — Хорсту. Итак, сейчас я пытаюсь повторно использовать его код в моем приложении.

-2

Решение

Вы можете начать с cfg80211.

cfg80211 заменяет Wireless-Extensions и предполагается, что:

Все новые беспроводные драйверы Linux должны быть написаны для cfg80211 для устройств fullmac или mac80211 для устройств softmac.

Также написано:

Вместо того, чтобы писать wext ioctls, вы пишете операцию cfg80211.
обратные вызовы и заполните структуру wiphy, чтобы указать cfg80211 его
Возможности устройства.

Начать с активного запуска сканирования Вот

2

Другие решения

Вы можете использовать Wext API, предоставляемый ядром, в основном, вызов ioctl с SIOCSIWSCANи получить отсканированный результат с SIOCGIWSCAN,
Вы можете настроить сканирование всего, используя флаг IW_SCAN_ALL_ESSIDи выберите тип сканирования с флагом IW_SCAN_TYPE_ACTIVE или же IW_SCAN_TYPE_PASSIVE,

0

По вопросам рекламы [email protected]