Внедрение протокола 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

    «Псевдотерминал не будет выделен, потому что stdin не является терминалом» при запуске ssh через python без paramiko

    python получает значения словаря в списках

    Никакое соединение не может быть сделано, потому что целевая машина активно отказалась от него (Django)

    Должен ли я использовать сельдерей или морковь для проекта Django?

    Частичная эффективность Python functools

    Как изящно чередовать два списка неравномерной длины в python?

    Как увеличить окно plt.show () с помощью Python

    Инициализация клиента Oauth в python для tumblr API с использованием Python-oauth2

    Python os.pipe vs multiprocessing.Pipe

    Как использовать Content-Encoding: gzip с Python SimpleHTTPServer

    Конфигурационный файл Python: любая рекомендация формата файла? Формат INI по-прежнему подходит? Кажется довольно старой школой

    Переместить столбец в строку с помощью Spark

    Как нарезать numpy.ndarray, состоящий из numpy.void номеров?

    Установка numpy в PyCharm в Windows

    Ошибка колкости: werkzeug.routing.BuildError

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