Установить прямую одноранговую связь Wi-Fi между ноутбуками - PullRequest
3 голосов
/ 21 марта 2012

TL; DR доступен внизу

Я пытался найти способ, чтобы два ноутбука (оба с Ubuntu) могли передавать базовые сообщения туда и обратно без необходимости их подключения через беспроводную сеть либо AP, либо ad-hoc. Я хочу повторить здесь, что специальная сеть не , что я ищу, я видел много подобных вопросов здесь с ответом.

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

В настоящее время: у меня есть оба ноутбука в режиме мониторинга (через интерфейс mon0, созданный из aircrack-ng aircrack-ng), чтобы они могли прослушивать соседний трафик (с помощью примера кода libpcap Wirecark, tcpdump, tcpcump.org и открывать raw сокет и просто распечатывая все пакеты. Я пробовал каждый только потому, что думал, что можно сделать что-то по-другому / что-то упустить). У меня также есть очень простая программа, которая состоит в открытии необработанного сокета для отправки созданных кадров Ethernet в эфир, но я не могу заставить свои две машины видеть пакеты другого. Анализатор, работающий на каждой машине, может видеть только пакеты, выходящие из этой машины (в дополнение к соседним маякам / контрольному трафику от Wi-Fi в области).

Некоторые вещи, на которые стоит обратить внимание:

-пакеты, которые я отправляю, отображаются в Wireshark (только на отправляющем компьютере) как искаженные пакеты 802.11 (вероятно, потому что я сейчас просто заполняю их ненужными данными). У меня сложилось впечатление, что мой другой ноутбук также увидит их как искаженные пакеты, но ничего не получится

- я использую сокеты от вызова к сокету (PF_PACKET, SOCK_RAW, ETH_P_ALL). Сырые сокеты - это то, о чем я только недавно узнал, так что я могу неправильно понять, как они работают, но у меня сложилось впечатление, что я могу создать пакет 2-го уровня вручную и отправить прямо в провод / воздух.

Если вам интересно , почему Я хочу сделать что-то вроде этого, это отчасти любопытство, отчасти исследование для проекта, над которым я работаю. Я хочу упростить / автоматизировать процесс настройки сети ad-hoc, и здесь я пытаюсь сделать небольшую замену ноутбуков, чтобы выяснить особенности сети ad-hoc, которую они собираются создать, и затем создайте / подключитесь к этой сети автоматически, вместо того, чтобы один человек явно настраивал сеть ИЛИ заставлял обоих людей предварительно выбирать имя и т. д. сети, и оба компьютера постоянно пытались подключиться к этому конкретному.

Меня больше интересует, правильно ли я иду в этом процессе, а не работает ли мой код или нет, если кто-то думает, что я публикую свой (очень простой, взятый из другой публикации в Stack Overflow) необработанный код сокета поможет, могу.

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

TL; DR Я хочу отправить пакет с одного ноутбука и забрать его на другом с помощью какого-нибудь анализатора пакетов. Нет сети Wi-Fi или специальной сети. Что-то похожее на подделку кадра маяка точки доступа (или подобного) с целью отправки небольших объемов данных.

Редактировать 2: После некоторых размышлений, может быть, то, что я ищу, это какое-то сырое использование 802.11? Имеете прямой контроль над Wi-Fi радио? Возможна ли такая вещь?

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Я обнаружил, что смог отправлять пакеты через интерфейс моего режима монитора, если у меня был правильный 802.11 с заголовками радиоленты.Я думаю, что проблема, с которой я первоначально столкнулся (неспособность перехватить пакеты), заключалась в том, что они были искажены и, таким образом, фактически не отправлялись.

Мне удалось это сделать, адаптировав приведенный здесь пример кода , любезно предоставленный кем-то по имени Эван Джонс , за исключением того, что мне не нужно было использовать карту на основе Atheros или драйверы Madwifi, все работалов порядке с интерфейсом mon0, созданным с помощью aircrack-ng.

1 голос
/ 21 марта 2012

Я уверен, что Apple Mac сделает это. Яблоко называют это «Бонжур». Вполне может быть, для этого есть подходящая спецификация IETF. Это статья о Bonjour это Википедия об открытом компоненте Bonjour , которая может помочь вам двигаться.

...