更改WiFi-Direct IP范围?在Android WiFi-Direct中强制使用IPv6?

我有两个
Android KitKat手机,两个都是作为Group Owners运行WiFi-Direct组,我们称之为GO1和GO2

我设法将GO1作为传统客户端连接到GO2而不破坏任何(先前设置的)wifi直接组.

问题是,正如您可能知道的那样,GO IP地址在Android源代码中是硬编码的,并设置为192.168.49.1

因此,我的两个设备GO1和GO2在其本地网络上都具有相同的IP地址(**).

我的应用程序同时是客户端和服务器.但是两个网络都使用相同的IP范围(192.168.49.XXX),显然,我无法改变.

因此,如果它们都托管WiFi-Direct组,我就无法在它们之间创建TCP连接,因为任何设备在尝试连接到192.168.49.1时都会连接到自身.

所以问题是:

>有没有办法改变Wifi-Direct中使用的IP范围?
>有没有办法在Wifi-Direct中使用IPv6而不是IPv4?
>可以在不使用手机的情况下完成任何此操作吗?
>还有其他建议吗?

**:实际上,因为GO1作为传统客户端连接到GO2,所以GO1被称为192.168.49.227(例如)到GO2,GO2被称为192.168.49.1到GO1.但是因为GO1也是GO,它的客户(和它自己)也被称为192.168.49.1.

最佳答案 无法更改IP范围,因为正如您正确指出的那样,它在Android Wi-Fi Direct系统服务中是硬编码的.就个人而言,我不知道在Wi-Fi P2P接口上启用了IPv6,即使它是,它也可能是一个硬编码的IPv6地址.

如果GO1和GO2必须在GO模式下相互连接,那么可能会考虑使用蓝牙或其他传输来允许它们进行通信.如果可以延迟GO1和GO2之间的通信,则缓存要交换的任何信息,并且当一个设备可以是另一个设备的客户端时,可以在这两个设备之间发送它.当GO1可以停止成为GO并且可以成为GO2的客户端时.

点赞