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
?
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
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é.
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é)
Je viens de modifier avec succès le fichier "hôtes" de mon iPhone (sur Jailbroken iOS 4.0).
simophone.local
]root
Alpine
/etc/hosts
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.
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.
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
?
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.
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.