web-dev-qa-db-fra.com

Le fichier hosts existe-t-il sur l'iPhone? Comment le changer?

Je développe une application qui interroge le serveur. Sur mon Mac, j'utilise le fichier hosts pour modifier les DNS afin qu'ils pointent vers un serveur local de mon réseau local.

Maintenant, je dois le tester avec mon iPhone, le problème est que mon iPhone ne reconnaît pas ce serveur en raison de la configuration manquante pour DNS.

Sur mon Mac ou Windows, j'ajoute simplement: 192.168.0.20 http://www.google.com dans le fichier hosts.

Maintenant, comment informer mon iPhone de l'URL: http://www.google.com ?

96
Hoang Pham

Cela ne répond pas directement à votre question, mais cela résout votre problème ...

Quelle est votre marque de routeur? Le micrologiciel de votre routeur peut vous permettre de définir des enregistrements DNS pour votre réseau local. C’est ce que je fais avec le firmware de Tomato

34
Andrew Bullock

Une autre option consiste à connecter votre iPhone via un proxy. Voici un exemple de la façon de le faire avec Fiddler (c'est très facile):

http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

Dans ce cas, toutes les recherches DNS effectuées par votre iPhone utiliseront le fichier hosts de la machine sur laquelle Fiddler est en cours d'exécution. Remarque , cependant, vous devez utiliser un nom qui sera résolu via DNS. example.local, par exemple, ne fonctionnera pas. example.xyz ou example.dev volonté.

75
stubotnik

Ce n'est pas lié à la programmation, mais je répondrai quand même. C'est dedans /etc/hosts.

Vous pouvez le changer avec un éditeur de texte simple tel que nano.

(Évidemment, il vous faudrait un iphone jailbreaké)

32
Thomas Bonini

Je viens de modifier avec succès le fichier "hôtes" de mon iPhone (sur Jailbroken iOS 4.0).

  • InstallSS OpenSSH sur iPhone via Cydia
  • En utilisant un client SFTP comme FileZilla sur mon ordinateur, je me suis connecté à mon iPhone
    • Adresse: [utilisez l'adresse IP ou le nom d'hôte de votre téléphone, par exemple. simophone.local]
    • Nom d'utilisateur: root
    • Mot de passe: Alpine
  • Localisé le fichier /etc/hosts
  • Effectué une sauvegarde sur mon ordinateur (au cas où je souhaiterais annuler mes modifications ultérieurement)
  • Edité le fichier hosts dans un éditeur de texte correct (tel que Notepad ++ ). Voir ici pour une explication du fichier hosts.
  • Téléchargé les modifications , écrasant le fichier hosts sur l'iPhone

Le téléphone met en cache certaines pages Web et requêtes DNS. Un redémarrage ou la suppression du cache peut donc être utile. J'espère que ça aide quelqu'un.

Simon.

13
Simon East

Si quelqu'un d'autre tombe sur cette page, vous pouvez également résoudre ce problème en utilisant l'adresse IP de la demande d'URL au lieu du domaine:

NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];

Ensuite, vous spécifiez l'hôte manuellement:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];

En ce qui concerne le serveur, il se comportera exactement de la même manière que si vous aviez utilisé http://myserver/mypage.php, sauf que l'iPhone n'aura pas à faire de recherche DNS.

API 100% publique.

6
ekscrypto

Il peut exister, mais vous ne pouvez pas le changer sur un iPhone non jailbreaké.

En supposant que votre serveur Web de développement se trouve sur un Mac, pourquoi ne pas simplement utiliser son nom Bonjour (par exemple, MyMac.local.) au lieu de myrealwebserverontheinternet.com?

6
oefe

Ne changez pas le DNS sur le téléphone. Au lieu de cela, connectez-vous avec wifi au réseau local et vous êtes prêt.

À mon bureau, nous avons des serveurs internes avec DNS interne qui ne sont pas exposés à Internet. Je viens de me connecter avec l'iPhone au réseau wifi du bureau et je peux ensuite y accéder correctement.

YMMV, mais au lieu de configurer le DNS du téléphone, il me semble que la configuration du DNS interne et du wifi locaux est une solution plus simple et plus propre.

4
Jaanus

Non, une application iPhone ne peut changer que des éléments dans son propre petit bac à sable. (Et même là, il y a des choses que vous ne pouvez pas changer à la volée.)

Votre meilleur pari est probablement d'utiliser l'adresse IP du serveur plutôt que le nom d'hôte. Un peu plus difficile, mais pas ça difficile si vous avez juste besoin de résoudre une seule adresse, ce serait de mettre un serveur DNS sur votre Mac et de configurer votre iPhone pour l'utiliser.

1
Stephen Darlington