API pour la configuration des adresses IP statiques dans une application Android
Est-il possible de définir l'adresse IP d'une interface d'Android au sein d'une application?
Je peux interroger les interfaces disponibles et leur adresse actuelle à l'aide de java.net.NetworkInterface
, mais cela ne permet pas de modifier les présentes. Ai-je raté quelque chose quelque part, ou est-il pas permis?
J'espérais être en mesure de faire ma demande de modifier ou ajouter un alias à un ou plusieurs des interfaces existantes au moment de l'exécution sur un "sur étagère" de l'appareil. (2.1/2.2). Idéalement, j'aimerais faire ce pour les deux IPv4 et IPv6 adresses.
OriginalL'auteur Flexo | 2010-05-27
Vous devez vous connecter pour publier un commentaire.
Paramètres.Système
comprend plusieurs options que vous pouvez utiliser pour cela:WIFI_USE_STATIC_IP
WIFI_STATIC_IP
WIFI_STATIC_NETMASK
WIFI_STATIC_GATEWAY
WIFI_STATIC_DNS1
etWIFI_STATIC_DNS2
Vous aurez aussi besoin de l'
android.la permission.WRITE_SETTINGS
autorisation déclaré pour votre application.Puis dans votre activité:
Si vous souhaitez modifier l'adresse IP du transporteur 3G/4G,etc interface, je ne crois pas que ce soit possible - puisqu'il est connecté avec le transporteur et utilise leurs DHCP/sécurité pour vous permettre de connecter et d'utiliser leurs services (comme un changement de l'adresse IP externe de votre modem câble sans le consentement de votre fournisseur de services internet).
Je n'ai pas vu tout de l'API pour le réglage de l'adresse IPv6, et les seuls exemples d'utilisation IPv4. Cependant, Android prend en charge le protocole IPv6 (
Inet6Address
depuis API 1). Pourrait toujours essayer de définir une adresse IPv6 à l'aide de WIFI_STATIC_IP et voir ce qui se passe 🙂 vous ne savez Pas sur la définition de l'alias soit, désolé.C'est exactement ce que je voulais, cependant Android dit que "Paramètres".Système.WIFI_STATIC_IP" est obsolète (comme de API17) et que je devrais utiliser WifiManager, tout nouveau code ou un lien pour savoir comment?
Cela ne fonctionne plus sur Android 3.0 ou version ultérieure. Le sous-jacent Android mise en œuvre a changé.
OriginalL'auteur CrackerJack9