最近入了台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的味道,故记录下来。如果你有更好的办法,也不防指教