Ich entwickle eine Anwendung, die den Server abfragt. Auf meinem Mac verwende ich die hosts-Datei, um die DNS so zu ändern, dass sie auf einen lokalen Server in meinem lokalen Netzwerk verweist.
Jetzt muss ich es mit meinem iPhone testen. Das Problem ist, dass mein iPhone diesen Server aufgrund der fehlenden Konfiguration für DNS nicht erkennt.
Auf meinem Mac oder Windows füge ich einfach hinzu: 192.168.0.20 http://www.google.com
in die hosts-Datei.
Wie kann ich meinem iPhone nun die URL mitteilen: http://www.google.com
?
Dies beantwortet Ihre Frage nicht direkt, sondern löst Ihr Problem ...
Welchen Router haben Sie? Mit Ihrer Router-Firmware können Sie möglicherweise DNS-Einträge für Ihr lokales Netzwerk festlegen. Das mache ich mit der Tomato Firmware
Eine weitere Möglichkeit besteht darin, Ihr iPhone über einen Proxy verbinden zu lassen. Hier ist ein Beispiel, wie man es mit Fiddler macht (es ist sehr einfach):
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
In diesem Fall wird bei DNS-Suchen auf Ihrem iPhone die Hosts-Datei des Computers verwendet, auf dem Fiddler ausgeführt wird. Beachten Sie jedoch , dass Sie einen Namen verwenden müssen, der über DNS aufgelöst wird. example.local
wird zum Beispiel nicht funktionieren. example.xyz
oder example.dev
werden.
Nicht programmierbezogen, aber ich antworte trotzdem. Es ist in /etc/hosts
.
Sie können es mit einem einfachen Texteditor wie nano
ändern.
(Offensichtlich brauchst du dafür ein iPhone mit Jailbreak)
Ich habe gerade die Hosts-Datei meines iPhones erfolgreich bearbeitet (unter Jailbroken iOS 4.0).
simophone.local
]root
Alpine
/etc/hosts
DateiDas Telefon speichert einige Webseiten und DNS-Abfragen im Cache. Daher kann ein Neustart oder ein Leeren des Cache hilfreich sein. Hoffe das hilft jemandem.
Simon.
Falls jemand anderes auf diese Seite fällt, können Sie dies auch lösen, indem Sie die IP-Adresse in der URL-Anfrage anstelle der Domain verwenden:
NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];
Dann geben Sie den Host manuell an:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];
Der Server verhält sich genau so, als ob Sie http://myserver/mypage.php
Verwendet hätten, nur dass das iPhone keine DNS-Suche durchführen muss.
100% öffentliche API.
Es könnte existieren, aber Sie können es nicht auf einem iPhone ohne Jailbreak ändern.
Angenommen, Ihr Entwicklungs-Webserver ist auf einem Mac installiert, warum verwenden Sie nicht einfach den Bonjour-Namen (z. B. MyMac.local.
) anstatt myrealwebserverontheinternet.com
?
Ändern Sie nicht den DNS auf dem Telefon. Stellen Sie stattdessen eine WLAN-Verbindung zum lokalen Netzwerk her, und schon sind Sie fertig.
In meinem Büro haben wir interne Server mit internem DNS, die nicht mit dem Internet verbunden sind. Ich verbinde mich nur mit dem iPhone mit dem Büro-WLAN und kann dann problemlos darauf zugreifen.
YMMV, aber anstatt das Telefon-DNS zu konfigurieren, ist es für mich eine sauberere und einfachere Lösung, nur lokales internes DNS und WLAN einzurichten.
Nein, eine iPhone-Anwendung kann nur Dinge in ihrer eigenen kleinen Sandbox ändern. (Und selbst dort gibt es Dinge, die Sie nicht im laufenden Betrieb ändern können.)
Am besten verwenden Sie die IP-Adresse des Servers anstelle des Hostnamens. Etwas schwieriger, aber nicht dass schwer, wenn Sie nur eine einzelne Adresse auflösen müssen, wäre es, einen DNS-Server auf Ihrem Mac zu installieren und Ihr iPhone so zu konfigurieren, dass dieser verwendet wird.