Fle*_*exo 12 networking android ipv4 ipv6
是否可以在应用程序中设置Android界面的IP地址?
我可以使用查询可用接口及其当前地址java.net.NetworkInterface,但这不提供更改这些接口的工具.我在某个地方错过了什么,还是不允许?
我希望能够让我的应用程序在运行时在"现成"设备上更改或添加一个或多个现有接口的别名.(2.1/2.2).理想情况下,我想为IPv4和IPv6地址执行此操作.
Cra*_*ck9 16
Settings.System 包括几个可用于此的标志:
WIFI_USE_STATIC_IPWIFI_STATIC_IPWIFI_STATIC_NETMASKWIFI_STATIC_GATEWAYWIFI_STATIC_DNS1 和 WIFI_STATIC_DNS2您还需要android.permission.WRITE_SETTINGS为您的应用程序声明的权限.
然后在你的活动中:
final ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WIFI_USE_STATIC_IP, 1);
Settings.System.putString(cr, Settings.System.WIFI_STATIC_IP, "you.re.ip.addr");
// call putString() for each value to set for your interface
Run Code Online (Sandbox Code Playgroud)
如果你想改变运营商的3G/4G等接口的IP地址,我认为这是不可能的 - 因为它连接到运营商并使用他们的DHCP /安全性来使你能够连接和使用他们的服务(排序)就像在未经ISP同意的情况下更改电缆调制解调器的外部IP一样.