Je doute que cela soit possible sans une rupture de prison étendue, mais est-il possible de modifier le fichier d'hôtes de l'iPad (ou de tout appareil iOS)?
Pas sans jailbreak. Une fois jailbreaké, ce sera le même que n'importe quel autre système Unix / BSD. Je suppose que je ne l'ai jamais fait auparavant.
Jasarien
1
Imaginez si une application pouvait modifier l'association entre les noms d'hôtes et leurs adresses IP légitimes.
Jano
2
@jano Ce problème existe probablement maintenant avec les applications sur le Mac App Store. Il est traité par OSX nécessitant un mot de passe avant de pouvoir modifier le fichier d'hôtes, et probablement aussi par la procédure de vérification des applications d'Apple.
Danyal Aytekin
3
@Jano: Microsoft Windows le permet maintenant, et cela ne pose aucun problème. Vous avez juste besoin des autorisations d'administrateur. Et il y a des raisons légitimes de vouloir modifier un fichier d'hôtes (toutes liées à l'accès à des choses sans serveur DNS ou à la gestion de problèmes VPN).
Josh Mouch
Réponses:
46
Non. Les applications ne peuvent modifier les fichiers que dans le répertoire des documents, dans leur propre sandbox. C'est pour la sécurité et la facilité d'installation / désinstallation. Vous ne pouvez donc le faire que sur un appareil jailbreaké.
Uniquement dans le bac à sable, mais pas uniquement dans le répertoire des documents (voir Guide de programmation d'application iOS> Runtime d'application> Système de fichiers).
Jano
55
La réponse précédente est correcte, mais si l'effet que vous recherchez est de rediriger le trafic HTTP pour un domaine vers une autre IP, il existe un moyen.
Puisqu'il ne répond pas techniquement à votre question, j'ai posé et répondu à la question ici:
Non, vous ne pouvez pas modifier le fichier hôte de l'iPad (sans jailbreak), mais vous pouvez contourner le problème.
Voici mon scénario:
Mac OS X, avec IP 192.168.2.1, exécutant une application Web
iPad, l'appareil sur lequel vous souhaitez tester l'application Web
Charles (pour Mac), active le proxy HTTP pour votre iPad
Je vais tester l'application Web exécutée sur mon Mac via iPad, mais je ne peux pas y accéder directement.
La solution fonctionne pour moi:
Tout d'abord, assurez-vous que votre serveur et votre iPad sont sur le même réseau local.
Ensuite, configurez le proxy Charles, dans le menu "Proxy> Proxy Settings ...", remplissez Port(principalement 8888) et basculez Enable transparent HTTP proxying.
Configurer les paramètres de proxy sur iPad.
Vous pouvez maintenant visiter votre application Web sur iPad.
Bien sûr , vous pouvez utiliser d' autres outils de proxy comme Squid ou Varnish sous Linux, ou Fiddler dans wondows.
Cela ne répond pas à la question ... mais c'est une excellente solution, facile à mettre en œuvre et à basculer facilement pour les fins pour lesquelles la plupart des gens voudraient modifier le fichier hosts.
Matt Kenefick
Solution géniale! Propre et facile à mettre en œuvre. J'utilise Linux comme système d'exploitation pour mon poste de travail, j'ai donc utilisé tinyproxy et le proxy fonctionne très bien avec mon iPhone. Merci mec!
Edenshaw
Cela ne fonctionne pas sur la nouvelle version d'iOS en raison de problèmes de sécurité peut-être, cela peut être plus facile avec un NodeJsmodule filternet
vanduc1102
1
"Vous pouvez maintenant visiter votre application Web sur iPad" - mais comment? Si mon application ne fonctionne que sur "myapp.dev.domain.com", comment l'Ipad résout-il le nom. C'est là que le fichier hôte entre en jeu, et je soupçonne le point de la question
Greg Woods
@GregWoods j'ai une configuration similaire et cela a fonctionné pour moi en visitant 'myapp.env.domain.com' mais seulement après quelques essais
RenaissanceProgrammer
6
Le moyen le plus simple de le faire est d'exécuter un simulateur iPad à l'aide de XCode, puis d'ajouter une entrée dans le fichier hosts (/ etc / hosts) sur le système hôte pour pointer vers votre site de test.
La question concerne l'appareil et non le simulateur.
Janak Nirmal
5
@JanakNirmal Encore une réponse utile cependant.
Simon
6
J'avais besoin de la même fonctionnalité, et faire du jailbreak est non-non. Une solution consiste à vous héberger un serveur DNS ( MaraDNS ), à accéder à vos paramètres wifi dans ipad / téléphone et à y ajouter votre serveur DNS personnalisé.
L'ensemble du processus ne m'a pris que 10 minutes et ça marche!
1) Téléchargez MaraDNS
2) Exécuter en mkSecretTxt.exetant qu'administrateur
3) Modifier le mararcfichier, le mien est:
ipv4_bind_addresses ="put your public IP Here"
timestamp_type =2
random_seed_file ="secret.txt"
csv2 ={}
csv2["Simple.Example.com."]="example.configuration"
Ajoutez le fichier appelé " example.configuration" dans le même dossier où se run_maradns.battrouve.
chaque réponse ici suppose que OP veut renifler le trafic HTTP alors que c'est la seule réponse réelle qui se concentre sur l'usurpation de la résolution DNS (en tant que modification du fichier d'hôtes)
Filipe Pina
5
Oui, vous pouvez modifier le fichier d'hôtes iPad, mais vous devez être jailbreaké. Une fois que vous avez fait cela, téléchargez Cydia (marché des applications) et obtenez iFile. Le fichier hosts se trouve dans "/ etc / hosts".
J'imagine que vous pourriez le faire en configurant un proxy transparent, en utilisant quelque chose comme Charles et en redirigeant le trafic de cette façon
Je sais que cela fait un moment que cela a été publié, mais avec iOS 7.1, certaines choses ont changé.
Jusqu'à présent, si vous développez une application, vous DEVEZ avoir un certificat SSL valide reconnu par Apple, sinon vous obtiendrez un message d'erreur sur votre iDevice. Plus de certificats auto-signés. Voir ici une liste:
De plus, si vous êtes ici, cela signifie que vous essayez de faire en sorte que votre iDevice résolve un nom (sur votre serveur https), sur un environnement de test ou de développement.
Au lieu d'utiliser squid, qui est une excellente application, vous pouvez simplement exécuter un serveur DNS très basique comme dnsmasq. Il utilisera votre fichier hosts comme première ligne de résolution de nom, vous pouvez donc tromper votre iDevice là-bas, en disant que www.blah.com est 192.168.10.10.
Le fichier de configuration est aussi simple que 3 à 4 lignes, et vous pouvez même configurer son serveur DHCP interne si vous le souhaitez.
Voici le mien:
adresse d'écoute = 192.168.10.35
domaine nécessaire
faux-privé
no-dhcp-interface = eth0
local = / localnet /
Bien sûr, vous devez configurer le réseau sur votre iDevice pour utiliser ce DNS (192.168.10.35 dans mon cas), ou simplement commencer à utiliser DHCP à partir de ce serveur de toute façon, après avoir été correctement configuré.
De plus, si dnsmasq ne peut pas résoudre le nom en interne, il utilise votre serveur DNS habituel (comme 8.8.8.8) pour le résoudre pour vous. TRÈS simple, élégant et résolu mes problèmes avec l'installation de l'application iDevice en interne.
Soit dit en passant, résout également de nombreux problèmes de résolution de noms avec les macs classiques (OS X).
Maintenant, ma diatribe: Bloody Apple. Rendre un appareil sûr ne doit pas inclure la castration du système d'exploitation ou des développeurs.
Merci Carlos. Le problème est que nous utilisons le produit VPN mobile de Pulse Secure pour tester les serveurs. Ceux-ci ne sont pas disponibles à l'extérieur. Donc, si nous voulons tester un nouveau certificat PROD, nous avons besoin de l'iPad pour aller au serveur de test (où le certificat PROD est installé); mais pour utiliser l'URL www.prod ...... com. donc, loin, aucune solution à ce scénario trouvée. : 0 (
codeslapper
2
Si vous avez la liberté de choisir le nom d'hôte, vous pouvez simplement ajouter votre hôte à un service DNS dynanmique, comme dyndns.org. Ensuite, vous pouvez vous fier aux mécanismes de résolution normaux de l'iPad pour résoudre l'adresse.
Entrez simplement l'apn de votre opérateur (avec le nom d'utilisateur / mot de passe apn si nécessaire) et le serveur proxy que vous souhaitez utiliser et appuyez sur Générer
ATTENTION AU LECTEUR : le site Web de cette réponse est répertorié comme malware par de nombreuses solutions de pare-feu Internet d'entreprise. En envoyant tout votre trafic via un serveur proxy non approuvé, vous exposez toutes les informations transmises. Avez-vous vraiment confiance iphonesettings.net?
ErikE
-2
Vous devez y avoir accès /private/etc/, non. vous ne pouvez pas.
@OmG, La question était "est-ce possible?" Et son commentaire répond en fait avec précision à la question. Arrêtez de copier / coller des commentaires pour renforcer votre propre réputation.
Daniel Smith
-6
Meilleure réponse: ajoutez simplement http ou https dans votre navigateur, l'adresse IP, les deux points et le numéro de port. Exemple: https://123.23.145.67:80
Réponses:
Non. Les applications ne peuvent modifier les fichiers que dans le répertoire des documents, dans leur propre sandbox. C'est pour la sécurité et la facilité d'installation / désinstallation. Vous ne pouvez donc le faire que sur un appareil jailbreaké.
la source
La réponse précédente est correcte, mais si l'effet que vous recherchez est de rediriger le trafic HTTP pour un domaine vers une autre IP, il existe un moyen.
Puisqu'il ne répond pas techniquement à votre question, j'ai posé et répondu à la question ici:
Comment puis-je rediriger les requêtes HTTP effectuées depuis un iPad?
la source
Non, vous ne pouvez pas modifier le fichier hôte de l'iPad (sans jailbreak), mais vous pouvez contourner le problème.
Voici mon scénario:
192.168.2.1
, exécutant une application WebJe vais tester l'application Web exécutée sur mon Mac via iPad, mais je ne peux pas y accéder directement.
La solution fonctionne pour moi:
Port
(principalement8888
) et basculezEnable transparent HTTP proxying
.Vous pouvez maintenant visiter votre application Web sur iPad.
Bien sûr , vous pouvez utiliser d' autres outils de proxy comme Squid ou Varnish sous Linux, ou Fiddler dans wondows.
la source
NodeJs
module filternetLe moyen le plus simple de le faire est d'exécuter un simulateur iPad à l'aide de XCode, puis d'ajouter une entrée dans le fichier hosts (/ etc / hosts) sur le système hôte pour pointer vers votre site de test.
la source
J'avais besoin de la même fonctionnalité, et faire du jailbreak est non-non. Une solution consiste à vous héberger un serveur DNS ( MaraDNS ), à accéder à vos paramètres wifi dans ipad / téléphone et à y ajouter votre serveur DNS personnalisé.
L'ensemble du processus ne m'a pris que 10 minutes et ça marche!
1) Téléchargez MaraDNS
2) Exécuter en
mkSecretTxt.exe
tant qu'administrateur3) Modifier le
mararc
fichier, le mien est:Ajoutez le fichier appelé "
example.configuration
" dans le même dossier où serun_maradns.bat
trouve.4) Modifiez votre fichier example.configuration:
5) Désactivez tous les pare-feu (commodité)
6) Exécutez le fichier "
run_maradns.bat
"7) Il ne devrait y avoir aucune erreur.
8) Ajoutez votre serveur DNS à la liste, comme indiqué ici: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html
9) Fonctionne!
la source
Oui, vous pouvez modifier le fichier d'hôtes iPad, mais vous devez être jailbreaké. Une fois que vous avez fait cela, téléchargez Cydia (marché des applications) et obtenez iFile. Le fichier hosts se trouve dans "/ etc / hosts".
la source
J'imagine que vous pourriez le faire en configurant un proxy transparent, en utilisant quelque chose comme Charles et en redirigeant le trafic de cette façon
la source
Workarond que j'utilise à des fins de développement:
la source
Je sais que cela fait un moment que cela a été publié, mais avec iOS 7.1, certaines choses ont changé.
Jusqu'à présent, si vous développez une application, vous DEVEZ avoir un certificat SSL valide reconnu par Apple, sinon vous obtiendrez un message d'erreur sur votre iDevice. Plus de certificats auto-signés. Voir ici une liste:
http://support.apple.com/kb/ht5012
De plus, si vous êtes ici, cela signifie que vous essayez de faire en sorte que votre iDevice résolve un nom (sur votre serveur https), sur un environnement de test ou de développement.
Au lieu d'utiliser squid, qui est une excellente application, vous pouvez simplement exécuter un serveur DNS très basique comme dnsmasq. Il utilisera votre fichier hosts comme première ligne de résolution de nom, vous pouvez donc tromper votre iDevice là-bas, en disant que www.blah.com est 192.168.10.10.
Le fichier de configuration est aussi simple que 3 à 4 lignes, et vous pouvez même configurer son serveur DHCP interne si vous le souhaitez.
Voici le mien:
adresse d'écoute = 192.168.10.35
domaine nécessaire
faux-privé
no-dhcp-interface = eth0
local = / localnet /
Bien sûr, vous devez configurer le réseau sur votre iDevice pour utiliser ce DNS (192.168.10.35 dans mon cas), ou simplement commencer à utiliser DHCP à partir de ce serveur de toute façon, après avoir été correctement configuré.
De plus, si dnsmasq ne peut pas résoudre le nom en interne, il utilise votre serveur DNS habituel (comme 8.8.8.8) pour le résoudre pour vous. TRÈS simple, élégant et résolu mes problèmes avec l'installation de l'application iDevice en interne.
Soit dit en passant, résout également de nombreux problèmes de résolution de noms avec les macs classiques (OS X).
Maintenant, ma diatribe: Bloody Apple. Rendre un appareil sûr ne doit pas inclure la castration du système d'exploitation ou des développeurs.
la source
Si vous avez la liberté de choisir le nom d'hôte, vous pouvez simplement ajouter votre hôte à un service DNS dynanmique, comme dyndns.org. Ensuite, vous pouvez vous fier aux mécanismes de résolution normaux de l'iPad pour résoudre l'adresse.
la source
Vous pouvez également utiliser un serveur proxy sur votre iPhone ou iPade via Internet mobile (3G) en utilisant un générateur de proxy iPhone Mobile:
http://iphonesettings.net/mobileproxygenerator.php
Entrez simplement l'apn de votre opérateur (avec le nom d'utilisateur / mot de passe apn si nécessaire) et le serveur proxy que vous souhaitez utiliser et appuyez sur Générer
la source
iphonesettings.net
?Vous devez y avoir accès
/private/etc/
, non. vous ne pouvez pas.la source
Meilleure réponse: ajoutez simplement http ou https dans votre navigateur, l'adresse IP, les deux points et le numéro de port. Exemple: https://123.23.145.67:80
la source