Le fichier hosts existe-t-il sur l'iPhone? Comment le changer? [fermé]

104

Je développe une application qui interroge le serveur. Dans mon Mac, j'utilise le fichier hosts pour modifier le DNS afin qu'il pointe vers un serveur local au sein 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 le DNS.

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

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

Hoang Pham
la source
Jailbreaker votre iPhone, téléchargez iFile, accédez au /etc/fichier appelé hostsdans la visionneuse de texte et ouvrez-le . Vous pouvez maintenant le modifier.
Développement local sur iPhone avec OSX et Charles Web Proxy deployfx.com/2011/08/…
jfroom
1
OSX iOS Simulator et mettez à jour votre fichier / etc / hosts.
dmarvasti
Alternativement: installez Bonjour (sudo apt-get install avahi-daemon avahi-utils) et accédez via hostname.local sur iphone / ipad
Saša Tomislav Mataić
J'ai été surpris de ne pas voir une réponse comme celle-ci, qui a fonctionné pour moi: stackoverflow.com/a/41857012/470749
Ryan

Réponses:

37

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

Quelle marque de routeur avez-vous? 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 Tomato

Andrew Bullock
la source
merci, c'est ce que j'ai fait pour résoudre le problème;)
Hoang Pham
J'ai également utilisé cette approche, sauf que j'utilise pfsense.
codewise
comment cela fonctionnera-t-il, j'ai aussi le même problème, je suis sur le routeur cisco wrt
Amitg2k12
82

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

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 exécuté. Notez cependant que vous devez utiliser un nom qui sera résolu via DNS. example.local, par exemple, ne fonctionnera pas. example.xyzou example.devvolonté.

stubotnik
la source
3
C'est la solution la plus simple. J'aurais dû y penser !!
jimplode
1
Impressionnant. Cela a fonctionné un régal pour moi!
Sniffer
1
La même chose fonctionne très bien dans osx, configurez un proxy HTTP dans les paramètres réseau i.imgur.com/h5zEm.png
antonj
2
Développement local sur iPhone avec OSX et Charles Web Proxy deployfx.com/2011/08/…
jfroom
1
C'est un excellent outil à avoir dans l'arsenal pour tout développement d'applications mobiles - pas seulement pour les recherches DNS
JoshuaDavid
32

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

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

(Évidemment, vous auriez besoin d'un iPhone jailbreaké pour cela)

Thomas Bonini
la source
3
Vous ne pouvez pas utiliser nano sur un iphone vanilla pour accéder directement à / etc / hosts. Je suppose qu'il s'agit d'une application qui serait distribuée, auquel cas vous ne pouvez pas jouer avec des fichiers en dehors de votre bac à sable.
Jaanus
@Jaanus: bien sûr, je voulais dire avec un iphone jailbreaké. Et il n'a jamais rien dit au sujet d'une application redistribuée; il a simplement mentionné qu'il avait besoin de le tester sur son iPhone qui avait un problème DNS.
Thomas Bonini
16
Je ne comprends pas les votes négatifs. La réponse est techniquement correcte et bien écrite.
Thomas Bonini
2
Je vais restaurer un peu de karma pour l'édition; si les votes négatifs ont été utilisés à cause de l' implicite «pour une application distribuée», alors que je peux les comprendre, je pense que les votes négatifs auraient dû laisser un commentaire pour expliquer cela.
David dit de réintégrer Monica le
2
Je suppose qu'il n'a besoin que de modifier le fichier hosts pour pouvoir tester son application. Une fois testé, il ne devrait pas avoir besoin de modifier le fichier hosts. Parfaitement acceptable pour recommander le jailbreaking ici!
Mongus Pong
14

Je viens de modifier le fichier 'hosts' de mon iPhone avec succès (sur Jailbreaké iOS 4.0).

  • Installé 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 /etc/hostsfichier
  • J'ai fait une sauvegarde sur mon ordinateur (au cas où je voudrais annuler mes modifications plus tard)
  • Edité le fichier hosts dans un éditeur de texte décent (tel que Notepad ++ ). Voir ici pour une explication du fichier hosts.
  • Téléchargé les modifications , écrasant le fichier d'hôtes sur l'iPhone

Le téléphone met en cache certaines pages Web et requêtes DNS, donc un redémarrage ou un effacement du cache peut aider. J'espère que cela aide quelqu'un.

Simon.

Simon Est
la source
1
@Simon J'ai suivi les mêmes étapes, mais cela n'a pas fonctionné. Ensuite, j'ai essayé de modifier les paramètres d'encodage et je l'ai compris! Vous devez convertir votre fichier hôte en ANSI dans Notepad ++ avant de l'enregistrer. Pour qui n'a pas réussi à faire fonctionner le fichier hôte; cliquez sur " Convertir en ANSI " dans le menu " Encodage ".
trkaplan du
2
Vous pouvez également utiliser l'application iFile de Cydia pour modifier le fichier d'hôtes sur votre appareil sans avoir à utiliser un ordinateur. Ad @ m
kirb
2
.. Et changez le mot de passe par défaut de alpin à autre chose!
Tieme
7

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

En supposant que votre serveur Web de développement est sur un Mac, pourquoi n'utilisez-vous pas simplement son nom Bonjour (par exemple MyMac.local.) au lieu de myrealwebserverontheinternet.com?

oefe
la source
tous les services Web existent dans un serveur au sein de mon réseau LAN. J'ai un nom de domaine et j'aimerais également mapper mon nom de domaine sur ce serveur. et imaginez que quelqu'un vous donne une adresse pour tous ses services Web, il vous demande d'interroger ces services en utilisant cette adresse, il peut vous montrer comment ajouter un fichier d'hôtes à mac, windows, mais pas iphone: -s
Hoang Pham
6

Au cas où quelqu'un d'autre tomberait sur cette page, vous pouvez également résoudre ce problème en utilisant l'adresse IP dans 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 l'aviez utilisé http://myserver/mypage.php, sauf que l'iPhone n'aura pas à faire de recherche DNS.

API 100% publique.

ekscrypto
la source
2
Cependant, cela ne fonctionnera que pour la première requête, si mypage.php fait une autre requête à myserver, l'application ne fera pas la conversion.
htafoya
Cette approche est bonne si vous n'avez pas l'intention d'utiliser des cookies.
DUzun
Non. Cela n'a pas fonctionné non plus. Nous utilisons l'épinglage SSL, donc l'incompatibilité de domaine a tout gâché: '017-07-13 10: 21: 42.244723-0400 ApperName [1015: 449748] libMobileGestalt MobileGestaltSupport.m: 153: pid 1015 (ApperName) n'a pas d'accès au bac à sable pour frZQaeyWLUvLjeuEK43hmg et n'est PAS correctement intitulé 2017-07-13 10: 21: 42.244886-0400 UnionBank [1015: 449748] libMobileGestalt MobileGestalt.c: 550: pas d'accès à InverseDeviceID (voir <rdar: // problem / 11744455>) '
codeslapper
5

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

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

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

Jaanus
la source
1

Non, une application iPhone ne peut changer des choses que 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 que difficile si vous avez juste besoin de résoudre une seule adresse, serait de mettre un serveur DNS sur votre Mac et configurer votre iPhone pour l' utiliser.

Stephen Darlington
la source