小工具知识网

当前位置: 首页 > 行业知识 > Android 12(S) IPV4优先IPV6(优先使用IPv4地址)的实现

行业知识

Android 12(S) IPV4优先IPV6(优先使用IPv4地址)的实现

2026-11-08 00:35:09 来源:互联网转载

根据RFC 6724中 规定 android 会优先选择IPv6 地址而不是 IPv4 地址,当整个网络中,同时支持IPv4和IPv6 地址时,设备中的应用请求服务器DNS时,会优先返回IPv6地址。

假如IPv6服务器支持内容不够完善,则应用显示内容会与IPv4服务器不一致,甚至有问题。

因此有需求是定制设备平台,使得 IPV4优先IPV6,主要修改2个地方:

1. 当设备或平台连接网络时,原来是先请求ipv6地址,再请求ipv4地址,这样会使用应用会先拿到ipv6地址,所以需要调整顺序,让ipv4先请求dhcp地址,再请求ipv6。


2. DNS域名解析时,调整解析DNS的优先顺序,即先解析IPv4地址,再解析IPv6地址,注:android 12在DnsResolver代码中。


接下来对这2个修改点进行逐一修改并说明。

1. 当设备或平台连接网络时,原来是先请求ipv6地址,再请求ipv4地址,这样会使用应用会先拿到ipv6地址,所以需要调整顺序,让ipv4先请求dhcp地址,再请求ipv6。

文件:packages/modules/NetworkStack/src/android/net/ip/IpClient.java

修改差异如下:

--- a/modules/NetworkStack/src/android/net/ip/IpClient.java+++ b/modules

上一篇:怎么改qq空间的密码?

下一篇:怎么关掉小车定位服务器?