Внедрение протокола AirDrop

Я заинтересован в внедрении AirDrop в качестве клиента на устройстве, таком как iPad или Windows. Может ли кто-нибудь указать мне в правильном направлении для реализации протокола AirDrop в Python или C. Любая помощь по этому поводу будет очень признательна. Заранее спасибо.

One Solution collect form web for “Внедрение протокола AirDrop”

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

Есть два этапа, и они могут выполняться независимо или параллельно.

  1. Обратный инженер так, как создается специальная сеть физической WLAN и называется

Чтобы сделать это, откройте iStumbler отсюда http://istumbler.net/ и попробуйте посмотреть, появляется ли дополнительная ad-hoc сеть при запуске airdrop. Я кратко попробовал, и, похоже, есть незашифрованная, ad-hoc сеть 802.11b, ее название начинается с «H». (Но я могу ошибаться, попробуйте сами.) Попробуйте найти шаблон, используемый Airdrop для обозначения или идентификации сети. Попробуйте несколько компьютеров Mac, чтобы найти это.

  1. Обратный-инженер протоколов

После того, как клиенты присоединились к сети WiFi, Airdrop обнаружит других клиентов, использующих Bonjour.

Во-первых, как описано в http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/ , запустите это в своем терминале, чтобы заставить все работать без скрытой сети ad-hoc:

defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1

Затем перезапустите Finder.

Получить Bonjour Browser отсюда: tildesoft.com

При запуске Airdrop вы обнаружите, что ваш mac рекламирует услугу «_airdrop._tcp». Он также публикует различные IP-адреса хоста и порта (новый создается каждый раз, когда Airdrop открывается в Finder), который ваш Mac прослушивает. Он также публикует имя компьютера, а также два ключа «ehash» и «phash» и один ключ «флаги», который имеет значение 1. Вам нужно будет посмотреть, как генерируются эти два хэша, и если они требуются , Наверное, они есть. Попробуйте опубликовать свои собственные данные на втором компьютере, используя одну из доступных библиотек Bonjour, и посмотрите, отображаются ли они в Airdrop (в Finder).

Я обнаружил, что служба TCP, предоставляемая каждым клиентом, использует SSL-соединение. Кажется, что сертификат сервера связан с вашим Apple ID. Вы можете найти сертификат в Keychain. Сервер также запрашивает сертификат клиента. Вероятно, это тот же сертификат Apple ID с другого компьютера. Вам придется поэкспериментировать с этим.

Я не знаю, какой протокол используется внутри этого SSL-соединения и не имеет доступа ко второму Mac для исследования в настоящее время. Вам нужно ПОМНИТЬ соединение, чтобы узнать (попробуйте Чарльз и Вирешарк). В любом случае он будет использоваться для передачи значка пользователя, а также для согласования передачи и, возможно, для перемещения фактических данных.

Я думаю, что открытая реализация этого будет очень полезной, даже если она окажется в конечном итоге ограничена пользователями с Apple ID – они, в конце концов, свободны.

Удачи!

    Interesting Posts

    выпадающее событие / обратный вызов в комбинированном поле в pyqt4

    Как перехватывать исключения у рабочих в многопроцессорности

    mtTkinter не завершает потоки

    Безопасное хранение паролей для использования в скрипте python

    Python: наследуйте суперкласс __init__

    Почему type (classInstance) возвращает экземпляр?

    Каковы аргументы для обратных вызовов метода трассировки переменной Tkinter?

    Как можно разделить текст между двумя разделителями, включая пустые строки?

    Использование os.walk () для рекурсивного прохождения каталогов в Python

    Cant Создать таблицы в доступе с помощью pyodbc

    Преобразование типа места в массиве NumPy

    nltk: Как предотвратить возникновение собственных существительных

    Настроить (переопределить) метод отправки Flask-Admin из вида редактирования

    Как построить 32-битное распределение модулей Python с помощью Setup.py на хосте x86_64

    В Python, как я должен проверить, есть ли переменная None, True или False

    Python - лучший язык программирования в мире.