Чи існує файл хостів на iPhone? Як це змінити? [зачинено]


104

Я розробляю програму, яка запитує до сервера. У своєму Mac я використовую файл хостів, щоб змінити dns, щоб вказати на локальний сервер у моїй локальній мережі.

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

На моєму Mac чи Windows я просто додаю: 192.168.0.20 http://www.google.comу файл хостів.

Тепер, як я можу повідомити свій iPhone про URL-адресу http://www.google.com:?


Перезавантажте свій iPhone, завантажте iFile, перейдіть до /etc/та відкрийте файл, який викликається hostsу програмі перегляду тексту. Тепер ви можете це відредагувати.

Локальний розвиток на iPhone з OSX та Charles Web Proxy розвернутисьxx 2011
2011/

1
OSX iOS Simulator та оновіть файл / etc / hosts.
dmarvasti

Як варіант: встановити Bonjour (sudo apt-get install avahi-daemon avahi-utils) та отримати доступ через hostname.local на iphone / ipad
Saša Tomislav Tomi Mataić,

Я був здивований, не побачивши такої відповіді, яка працювала на мене: stackoverflow.com/a/41857012/470749
Райан

Відповіді:


37

Це не відповідає безпосередньо на ваше запитання, але все ж вирішує вашу проблему ...

Який у вас роутер? Прошивка маршрутизатора може дозволяти вам встановлювати записи DNS для вашої локальної мережі. Це те, що я роблю з прошивкою Tomato


дякую, це я зробив для вирішення питання;)
Хоанг Фам

Я також використовував такий підхід, за винятком випадків, коли я використовую pfsense.
codewise

як це буде працювати, у мене теж є те саме питання, я на маршрутизаторі cisco wrt
Amitg2k12

82

Інший варіант тут - підключити 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
Це найпростіше рішення. Я мав би подумати про це !!
jimplode

1
Дивовижно. Це спрацювало для мене частування!
Sniffer

1
Те ж саме чудово працює в osx, налаштуйте HTTP-проксі в мережевих налаштуваннях i.imgur.com/h5zEm.png
antonj

2
Локальний розвиток на iPhone з OSX та Charles Web Proxy розвернутисьxx 2011
2011/

1
Це прекрасний інструмент для створення арсеналу для будь-якої розробки мобільних додатків - не лише для пошуку DNS
JoshuaDavid

32

Не пов'язане з програмуванням, але я все одно відповім. Це в /etc/hosts.

Ви можете змінити його за допомогою простого текстового редактора, такого як nano.

(Очевидно, для цього вам знадобиться айфон з в'язницею)


3
Ви не можете використовувати нано на ванільному iphone, щоб безпосередньо дістатися до / etc / hosts. Я б припустив, що це програма, яка буде розповсюджуватися, і в цьому випадку ви не можете возитися з файлами поза вашою пісочницею.
Яанус

@Jaanus: я, звичайно, мав на увазі з iilbroken iphone. І він ніколи нічого не говорив про перерозподіл програми; він просто згадав, що потрібно перевірити це на своєму iphone, який мав проблему з dns.
Томас Боніні

16
Я не розумію суті. Відповідь технічно правильна і добре написана.
Томас Боніні

2
Я відновлю карму для редагування; якщо голоси вниз були використані із-за неявного "розподіленого додатка", то, хоча я можу їх зрозуміти, я думаю, що учасники голосування повинні були залишити коментар для пояснення цього.
Девід каже повернути Моніку

2
Я припускаю, що йому потрібно лише змінити файл хосту, щоб він міг перевірити свою програму. Після тестування йому не потрібно буде змінювати файл хостів. Цілком прийнятно порекомендувати тут тюремне пробивання!
Mongus Pong

14

Я щойно успішно відредагував файл хостів свого iPhone (на Jailbroken iOS 4.0).

  • Встановлено OpenSSH на iPhone через Cydia
  • Використовуючи клієнт SFTP, як FileZilla на своєму комп’ютері, я підключився до свого iPhone
    • Адреса: [використовуйте IP-адресу або ім'я хоста вашого телефону, наприклад. simophone.local]
    • Ім'я користувача: root
    • Пароль: alpine
  • Розташований /etc/hostsфайл
  • Зробив резервну копію на своєму комп’ютері (у випадку, якщо я хочу відновити зміни пізніше)
  • Відредагував файл хостів у гідному текстовому редакторі (наприклад, Блокнот ++ ). Дивіться тут для пояснення файлу хостів.
  • Завантажили зміни , перезаписавши файл хостів на iPhone

Телефон кешує деякі веб-сторінки та запити DNS, тому перезавантаження чи очищення кешу може допомогти. Сподіваюся, що хтось допомагає.

Саймон.


1
@Simon Я виконував ті самі кроки, але це не спрацювало. Тоді я спробував змінити параметри кодування, і отримав це! Ви повинні конвертувати свій хост-файл у ANSI у Блокноті ++, перш ніж зберегти його. Для кого не вдалося запрацювати файл хоста; натисніть " Перетворити в ANSI " у меню " Кодування ".
trkaplan

2
Ви також можете скористатися додатком iFile від Cydia для редагування файлів хостів на своєму пристрої без використання комп'ютера. Ad @ m
kirb

2
.. І змінити пароль за замовчуванням з альпійського на щось інше!
Тієм

7

Він може існувати, але ви не можете змінити його на iPhone, який не має зламу.

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


всі веб-сервіси існують на сервері в моїй локальній мережі. У мене є доменне ім'я, і ​​я хотів би також позначити своє доменне ім'я на цьому сервері. і уявіть собі, що хтось дає вам адресу для всіх своїх веб-сервісів, він попросить вас запитувати ці служби за допомогою цієї адреси, він може показати вам, як додати файли хостів у mac, windows, але не iphone: -s
Hoang Pham

6

Якщо хто-небудь ще потрапить на цю сторінку, ви також можете вирішити це за допомогою 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.


2
Однак це буде працювати лише для першого запиту, якщо mypage.php зробить будь-який інший запит до мого сервера, програма не перетворить конверсію.
htafoya

Цей підхід хороший, якщо ви не збираєтесь використовувати файли cookie.
Дзузун

Ні. Це теж не спрацювало. Ми використовуємо SSL Pinning, тому невідповідність домену переплутала його: '017-07-13 10: 21: 42.244723-0400 ApperName [1015: 449748] libMobileGestalt MobileGestaltSupport.m: 153: pid 1015 (ApperName) не має доступу в пісочну скриньку frZQaeyWLUvLjeuEK43hmg і нЕ відповідну назву 2017-07-13 10: 21: 42.244886-0400 UnionBank [1015: 449 748] libMobileGestalt MobileGestalt.c: 550: немає доступу до InverseDeviceID (див <rdar: // проблема / 11744455>) »
codeslapper

5

Не змінюйте DNS на телефоні. Натомість підключіться через wifi до локальної мережі, і все налаштовано.

У мене в офісі є внутрішні сервери з внутрішнім DNS, які не піддаються впливу Інтернету. Я просто підключаюся з iPhone до офісного wifi і потім можу отримати доступ до них добре.

YMMV, але замість налаштування DNS телефону, мені здається, що просто налаштувати локальний внутрішній DNS та wifi - це більш чітке та просте рішення.


1

Ні, додаток для iPhone може змінювати речі лише у власній маленькій пісочниці. (І навіть є речі, які ви не можете змінити на льоту.)

Найкраще, можливо, використовувати IP-адресу серверів, а не ім'я хоста. Трохи складніше, але не , що важко , якщо вам просто потрібно вирішити одну адресу, буде поставити сервер DNS на вашому Mac і налаштувати iPhone , щоб використовувати це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.