Есть ли файл hosts на iPhone? Как его изменить?

Я разрабатываю приложение, которое запрашивает сервер. На моем Mac я использую файл hosts для изменения dns, чтобы указать на локальный сервер в локальной локальной сети.

Теперь мне нужно протестировать его с помощью iPhone, проблема в том, что мой iPhone не распознает этот сервер из-за отсутствия конфигурации для dns.

На моем Mac или Windows я просто добавляю: 192.168.0.20 http://www.google.com в файл hosts.

Теперь, как я могу сообщить своему iPhone о URL-адресе: http://www.google.com

Ответ 1

Это не отвечает на ваш вопрос напрямую, но это решает вашу проблему...

Что делает маршрутизатор у вас? Прошивка вашего маршрутизатора может позволить вам установить записи DNS для вашей локальной сети. Это то, что я делаю с прошивкой Tomato

Ответ 2

Другим вариантом здесь является подключение вашего iPhone через прокси. Вот пример того, как это сделать с Fiddler (это очень просто):

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

В этом случае любые запросы DNS, которые ваш iPhone делает, будут использовать файл хостов машины Fiddler. Примечание, однако, вы должны использовать имя, которое будет разрешено через DNS. example.local, например, не будет работать. example.xyz или example.dev будет.

Ответ 3

Не связано с программированием, но я все равно отвечу. Он находится в /etc/hosts.

Вы можете изменить его с помощью простого текстового редактора, такого как nano.

(Очевидно, для этого вам понадобится jailbroken iphone)

Ответ 4

Я только что удалил файл моего хоста iOS (на Jailbroken iOS 4.0).

  • Установлен OpenSSH на iPhone через Cydia
  • Используя SFTP-клиент, например FileZilla на моем компьютере, я подключился к своему iPhone
    • Адрес: [используйте IP-адрес вашего телефона или имя хоста, например. simophone.local]
    • Имя пользователя: root
    • Пароль: alpine
  • Расположен файл /etc/hosts
  • Создал резервную копию на моем компьютере (в случае, если я хочу позже изменить мои изменения)
  • Отредактирован файл хостов в достойном текстовом редакторе (например, Notepad ++). См. здесь для объяснения файла hosts.
  • Загрузили изменения, перезаписав файл hosts на iPhone

Телефон кэширует некоторые веб-страницы и DNS-запросы, поэтому может помочь перезагрузка или очистка кеша. Надежда, которая помогает кому-то.

Саймон.

Ответ 5

Он может существовать, но вы не можете изменить его на iPhone, не прошедшем джейлбрейк.

Предполагая, что ваш веб-сервер разработки находится на Mac, почему бы вам просто не использовать его имя Bonjour (например, MyMac.local.) вместо myrealwebserverontheinternet.com?

Ответ 6

В случае, если на эту страницу попадает кто-либо еще, вы также можете решить эту проблему, используя адрес Ip ​​в URL-адресе вместо домена:

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

Затем вы указываете Host вручную:

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

Что касается сервера, он будет вести себя точно так же, как если бы вы использовали http://myserver/mypage.php, за исключением того, что iPhone не должен будет выполнять поиск DNS.

100% открытый API.

Ответ 7

Не меняйте DNS на телефоне. Вместо этого подключитесь к Wi-Fi в локальной сети, и все будет установлено.

В моем офисе у нас есть внутренние серверы с внутренними DNS, которые не имеют доступа к Интернету. Я просто подключаюсь к iPhone в офис Wi-Fi и могу получить к ним доступ.

YMMV, но вместо того, чтобы настраивать DNS-телефон, мне кажется, что просто настройка локального внутреннего DNS и wifi является более простым и простым решением.

Ответ 8

Нет, приложение для iPhone может только изменить материал в своей маленькой песочнице. (И даже там есть вещи, которые вы не можете изменить на лету.)

Лучше всего, вероятно, использовать IP-адрес серверов, а не имя хоста. Чуть тяжелее, но не так сложно, если вам просто нужно решить один адрес, нужно было бы разместить DNS-сервер на вашем Mac и настроить iPhone для использования.