行业知识
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空间的密码?
下一篇:怎么关掉小车定位服务器?