2 votos

Cambiar el DNS de la red móvil en Lollipop y superiores

Ok, esta es una pregunta constante, cómo cambiar el DNS de la red móvil. Pero en diferentes versiones de Android, obtendrá un método diferente. Así que esta es la razón por la que pido esto.

Ya he conocido un método para Android 4 e inferior. Ahora, quiero saber cómo cambiar el DNS de la red móvil en Android 5.0 Lollipop y superior.

Una pista:

ndc resolver setnetdns <netId> <domains> <dns1> <dns2>

Alguien me dijo que debía usar este comando para cambiar los DNS de la red móvil en Lollipop y superiores, pero qué es netId ? ¿Dónde puedo encontrar este valor? ¿Podría darme un ejemplo?

No soy programador de C/C++, pero intento leer el código fuente relativo, encontrado netid será transformado a tipo unsigned long por strtoul función. Así que supongo que netid debe ser una cadena hexadecimal. Intento usar netcfg valor de salida, pero no funciona.

¿Podría darme más explicaciones sobre este método? ¿Cómo utilizarlo? ¿O hay algún otro método efectivo para cambiar los DNS de la red móvil en Lollipop y superiores?

1 votos

Relacionado: Android.stackexchange.com/a/71615/44325 Aunque el comando no parece funcionar en Lollipop, pero la aplicación afirma que funciona en Lollipop. Tal vez usted podría darle una oportunidad.

0 votos

@AndrewT. He leído el post que dijiste antes de hacer esta pregunta. Gracias igualmente. El método es sólo para Android 4.X, y el autor no abrió su código. Quiero encontrar un método no una aplicación. P.D. Gracias por editar mi pregunta.

0 votos

@Gino Soy el autor de Anular el DNS y he actualizado la aplicación para que funcione también en Lollipop. He no encontró una manera de conseguir el netId desde el CLI. Lo obtengo a través de un método Java.

1voto

Léo Lam Puntos 103

Ya no uso Lollipop en mi teléfono. Sin embargo, ya que su pregunta se refiere a Lollipop y superior, y yo uso Marshmallow, puedo confirmarlo:

ndc resolver setnetdns devname dnsdomain dns1 dns2

funciona. Parece que ya no es necesario conocer el ID de la red en Marshmallow, y solo se necesita el nombre del dispositivo.

Así, por ejemplo:

ndc resolver setnetdns rndis0 "" 8.8.8.8 8.8.4.4

establecerá el DNS para la interfaz rndis0 a los servidores DNS públicos de Google.

1 votos

Esto no funciona en mi dispositivo Lollipop :/ Por cierto, ¿qué es dnsdomain ?

0 votos

Ah, qué pena. Supongo que cambiaron el código algún tiempo después de Lollipop para que ya no sea necesario saber el netId, sólo el devname. No estoy completamente seguro, pero creo que dnsdomain es el dominio de búsqueda. Por ejemplo, si lo tienes configurado como "lan" y escribes "mi-casa-pc", el sistema intentará resolver "mi-casa-pc.lan".

1 votos

@LéoLam ¿estás seguro de que no necesitas el netId ¿ya no? Tengo un Nexus 5 con Android 6.0.1 y no me funciona. Con el netId no hay problema. He probado sólo en una red Wi-Fi, voy a hacer más investigación.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X