Существует ли файл 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 ?

8 ответов


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

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


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

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

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


не связанные с программированием, но я все равно отвечу. Это в /etc/hosts.

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

(очевидно, вам понадобится джейлбрейк iphone для этого)


Я только что успешно отредактировал файл "hosts" моего iPhone (на взломанной iOS 4.0).

  • установлен OpenSSH на iPhone через Cydia
  • С помощью клиент SFTP как программа filezilla на моем компьютере я подключился к своему iPhone
    • адрес: [используйте IP-адрес или имя хоста вашего телефона, например. simophone.local]
    • имя пользователя: root
    • пароль: alpine
  • расположенном в /etc/hosts
  • сделал резервное копирование на моем компьютере (в случае, если я хочу вернуть свои изменения позже)
  • отредактировал файл hosts в приличном текстовом редакторе (например,Блокнот++). См.здесь для объяснения файла hosts.
  • загруженные изменения, перезапись файла hosts на для iPhone

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

Саймон.


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

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


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

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

затем вы указываете хост вручную:

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

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

100% публичный API.


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

в моем офисе у нас есть внутренние серверы с внутренним DNS, которые не подвергаются воздействию Интернета. Я просто подключаюсь с iPhone к офисному wifi, а затем могу получить к ним доступ.

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


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

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