最近入了台iphone se,在遷移微信聊天記錄的時候,遇到個BUG。它的遷移流程是這樣的:需要將兩台手機連接到同一個WIFI上面,然后新手機掃舊手機上面的二維碼,來完成導入。中途遇到的問題是:
此時我兩台手機連接的都是ssid為zzz的wifi,經過連接不同的ssid發現,它提示的這個wifi(這里為"{{{")跟實際的wifi(這里為"zzz"),每個字符的ascii碼剛好大1,無論我連接了什么網絡,SSID是純字母,帶中文,帶空格,手機wifi熱點,藍牙,都是此情況,提示“兩個設備未連接到同一個Wi-Fi”,基本可以斷定,我遇到微信的BUG了,檢查了下軟件版本,均是最新版本,於是琢磨着怎么繞過這個BUG。
最開始是做了個測試,創建了一個名為{{{的wifi,新手機連接上去,執行遷移,不再提示“兩個設備未連接到同一個Wi-Fi”,而是報錯:
由此可見,需要做的事情是繞過ssid的同名判定,並且要讓兩台手機互通(約等於在一個內網)。
一開始想到的是保存那個二維碼,假如ssid信息是保存在二維碼中的話,那么可以先把舊手機連接到yyy(根據BUG,它將會要求新手機連接zzz),然后把二維碼截圖,再把舊手機連接到zzz,再用新手機掃描截圖,結果還是提示我連接{{{,所以ssid的信息並不是保存在二維碼中。
既然如此,那么得想辦法弄兩個wifi,而且它們還得在一個內網。首先想到的是用路由器wifi+筆記本的虛擬wifi,開啟虛擬wifi的共享上網功能,但發現,這種方式只能單方向ping通(虛擬wifi網絡到路由器wifi網絡),類似於內網IP跟外網獨立IP,應該是windows共享上網的特性吧,用手機在兩個方向都測試了,均行不通,估計微信在兩個方向都要建立連接吧。
這時想起來windows有個網絡橋接的功能,於是
1、用筆記本A創建虛擬wifi,ssid設置為{{{,IP跟路由器網絡設置為同一網段;
2、筆記本B用網線連接到路由器網絡;
3、筆記本B的無線網卡連接到虛擬wifi,IP跟路由器網絡設置為同一網段;
4、然后在筆記本B上面將這兩個網絡連接橋接起來(在【網絡連接】設置面板,將兩個網絡連接選中,並點擊右鍵,選擇【橋接】);
於是,虛擬wifi跟路由器wifi連成了同一個網絡了!
接着:
1、將舊手機連接路由器wifi;
2、新手機連接虛擬wifi,IP跟路由器網絡設置為同一網段,網關設置為路由器IP,設置好DNS;
再點遷移,成功!
ps:我本不是搞網絡這一塊的,雖然沒什么牛B的技術,但尋找解決辦法的這個過程,有點hack的味道,故記錄下來。如果你有更好的辦法,也不防指教