我有意將AirDrop作爲iPad或Windows計算機等設備上的客戶端來實施。任何人都可以用正確的方向指出我是用Python還是C來實現AirDrop協議。任何幫助都將不勝感激。提前致謝。實施AirDrop協議
回答
對於你或任何人的利益誰將會嘗試逆向工程和實施空投,這裏是我發現,你將不得不做上手什麼:
有兩個步驟涉及到,他們可以獨立或並行完成。
- 反向工程物理WLAN ad-hoc網絡的創建和命名
要做到這一點,從這裏http://istumbler.net/得到iStumbler和嘗試看看是否有其他ad-hoc網絡顯示出來的方式當空投運行時。我已經簡單地嘗試過了,似乎有一個未加密的特別802.11b網絡,它的名字以「H」開頭。 (但是我可能錯了,自己試試。)嘗試找到Airdrop用來命名或識別網絡的模式。嘗試從多個Mac上找到這個。
- 逆向工程的協議
一旦客戶機都加入了WiFi網絡,空投會使用Bonjour檢測到其他客戶端。
首先,如在http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/描述,在終端得到的東西的工作運行此不隱藏的ad-hoc網絡:
默認寫com.apple.NetworkBrowser BrowseAllInterfaces 1
然後重啓搜索。
獲取從這裏卓悅瀏覽器:tildesoft.com
當開始空投,你會發現,你的MAC通告服務「_airdrop._tcp」。它還會發布主機和端口的各種IP地址(每次在Finder中打開Airdrop時都會創建一個新IP地址),以便您的Mac正在監聽。它還會發布計算機的名稱以及兩個鍵「ehash」和「phash」以及一個值爲1的鍵「標誌」。您將不得不查看這兩個哈希如何生成以及是否需要。可能它們是。嘗試使用可用的Bonjour庫之一在第二臺計算機上發佈自己的數據,並查看它們是否顯示在Airdrop(Finder中)中。
我已經發現,通過每個客戶端露出的TCP服務使用SSL連接。服務器證書似乎與您的Apple ID相關聯。您可以在鑰匙串中找到證書。客戶端證書也被服務器請求。這可能與其他計算機的Apple ID證書相同。你將不得不嘗試這個。
我不知道是做什麼用的協議,SSL連接內,沒有進入到第二Mac:目前調查。你將不得不MITM的連接找出(嘗試查爾斯和Wireshark)。在任何情況下,它都將用於傳輸用戶圖標以及協商傳輸並可能移動實際數據。
我認爲,一個開放的實施,這將是有很大好處,即使它會變成最終被限制到用戶使用Apple ID - 它們都是免費的畢竟。
祝你好運!
非常感謝。偉大的提示開始。我儘可能用Bonjour Browser進行監控,但之後放棄。 – petschekr
感謝您的有用答案,我也對此感興趣 –
- 1. 實施UIActivityItemSource協議
- 2. 實施Bittorrent協議
- 3. 實施IPSEC協議
- 4. 網絡協議實施
- 5. Cumulocity實施新協議
- 6. MSN協議11實施
- 7. RabbitMQ實施AMQP協議
- 8. 私下實施協議?
- 9. CoreData和實施協議
- 10. NSManagedObject實施協議 - 由於@dynamic警告
- 11. 修復協議Ecto.Queryable未實施錯誤
- 12. 有效實施現有的協議
- 13. 實施方法不符合協議
- 14. 夫特:的「協議」陣列和實施
- 15. 協議的實施和繼承
- 16. 正確實施代表和協議
- 17. 高級Swift2 - 在結構實現的類Vs的實施協議協議
- 18. Nokogiri實施協助
- 19. IOS實施建議
- 20. 實施Google建議
- 21. 實現NSCoding協議
- 22. Swift協議實例
- 23. 施樂DocuShare是否支持CMIS協議?
- 24. 正在實施表功能所需的UITableViewDataSource協議
- 25. 實施`Array`&`ArraySlice`擴展與協議代替
- 26. Phoenix/Elixir - 協議Phoenix.Param未實施#PID <0.890.0>
- 27. 崩潰而實施NSCoding協議方法釋放
- 28. 請解釋Redis的發佈/訂閱有線協議實施例
- 29. 選擇正確的聊天協議實施
相關:http://stackoverflow.com/questions/5220136/how-the-new-mac-os-airdrop-works –