Apakah file host ada di iPhone? Bagaimana cara mengubahnya? [Tutup]

104

Saya mengembangkan aplikasi yang meminta ke server. Di Mac saya, saya menggunakan file host untuk mengubah dns agar mengarah ke server lokal dalam jaringan area lokal saya.

Sekarang saya perlu mengujinya dengan iPhone saya, masalahnya adalah iPhone saya tidak mengenali server itu karena konfigurasi dns yang hilang.

Di Mac atau Windows saya, saya cukup menambahkan: 192.168.0.20 http://www.google.comke file host.

Sekarang bagaimana saya biarkan iPhone saya tahu URL: http://www.google.com?

Hoang Pham
sumber
Lakukan jailbreak pada iPhone Anda, unduh iFile, navigasikan ke /etc/dan buka file yang disebut hostsdalam penampil teks. Sekarang Anda dapat mengeditnya.
Pengembangan Lokal di iPhone dengan OSX dan Charles Web Proxy deployfx.com/2011/08/…
jfroom
1
Simulator iOS OSX dan perbarui file / etc / hosts Anda.
dmarvasti
Atau: instal Bonjour (sudo apt-get install avahi-daemon avahi-utils) dan akses melalui hostname.local di iphone / ipad
Saša Tomislav Mataić
Saya terkejut tidak melihat jawaban seperti ini, yang berhasil untuk saya: stackoverflow.com/a/41857012/470749
Ryan

Jawaban:

37

Ini tidak langsung menjawab pertanyaan Anda, tetapi menyelesaikan masalah Anda ...

Apa merek router yang Anda miliki? Firmware router Anda memungkinkan Anda untuk mengatur catatan DNS untuk jaringan lokal Anda. Inilah yang saya lakukan dengan firmware Tomat

Andrew Bullock
sumber
terima kasih, inilah yang saya lakukan untuk menyelesaikan masalah;)
Hoang Pham
Saya menggunakan pendekatan ini juga, kecuali saya menggunakan pfsense.
sandi
bagaimana cara kerjanya, saya juga memiliki masalah yang sama, saya menggunakan router cisco wrt
Amitg2k12
82

Opsi lain di sini adalah menghubungkan iPhone Anda melalui proxy. Berikut adalah contoh bagaimana melakukannya dengan Fiddler (sangat mudah):

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

Dalam hal ini, setiap pencarian dns yang dilakukan iPhone Anda akan menggunakan file host dari mesin yang menjalankan Fiddler. Namun, perhatikan bahwa Anda harus menggunakan nama yang akan diselesaikan melalui DNS. example.local, misalnya, tidak akan berhasil. example.xyzatau example.devakan.

stubotnik
sumber
3
Ini adalah solusi paling sederhana. Aku seharusnya memikirkan ini !!
jimplode
1
Hebat. Ini berhasil untuk saya!
Sniffer
1
Hal yang sama berfungsi dengan baik di osx, atur proxy HTTP di pengaturan jaringan i.imgur.com/h5zEm.png
antonj
2
Pengembangan Lokal di iPhone dengan OSX dan Charles Web Proxy deployfx.com/2011/08/…
jfroom
1
Ini adalah alat yang hebat untuk dimiliki di gudang untuk pengembangan aplikasi seluler apa pun - tidak hanya untuk pencarian DNS
JoshuaDavid
32

Tidak terkait dengan pemrograman, tetapi saya akan tetap menjawabnya. Sudah masuk /etc/hosts.

Anda dapat mengubahnya dengan editor teks sederhana seperti nano.

(Jelas Anda membutuhkan iphone yang sudah di-jailbreak untuk ini)

Thomas Bonini
sumber
3
Anda tidak dapat menggunakan nano di iPhone vanilla untuk langsung mengakses / etc / hosts. Saya akan berasumsi adalah tentang aplikasi yang akan didistribusikan, dalam hal ini Anda tidak dapat mengacaukan file di luar kotak pasir Anda.
Jaanus
@ Jaanus: tentu saja yang saya maksud dengan iphone yang sudah di-jailbreak. Dan dia tidak pernah mengatakan apa pun tentang aplikasi yang didistribusikan ulang; dia hanya mengatakan bahwa dia perlu mengujinya di iphone-nya yang memiliki masalah dns.
Thomas Bonini
16
Saya tidak mengerti suara negatifnya. Jawabannya secara teknis benar dan ditulis dengan baik.
Thomas Bonini
2
Saya akan mengembalikan beberapa karma untuk mengedit; jika suara negatif digunakan karena implisit 'untuk aplikasi terdistribusi' maka sementara saya bisa memahaminya, saya pikir para downvoters seharusnya memberikan komentar untuk menjelaskannya.
David mengatakan mengembalikan Monica
2
Saya kira dia hanya perlu mengubah file host sehingga dia dapat menguji aplikasinya. Setelah diuji, file host tidak perlu diubah. Dapat diterima untuk merekomendasikan jailbreak di sini!
Mongus Pong
14

Saya baru saja berhasil mengedit file 'host' iPhone saya (di Jailbroken iOS 4.0).

  • Menginstal OpenSSH ke iPhone melalui Cydia
  • Menggunakan klien SFTP seperti FileZilla di komputer saya, saya terhubung ke iPhone saya
    • Alamat: [gunakan alamat IP atau nama host ponsel Anda, mis. simophone.local]
    • Nama pengguna: root
    • Kata sandi: alpine
  • Temukan /etc/hostsfile
  • Membuat cadangan di komputer saya (jika saya ingin mengembalikan perubahan saya nanti)
  • Mengedit file host dalam editor teks yang layak (seperti Notepad ++ ). Lihat di sini untuk penjelasan tentang file host.
  • Mengunggah perubahan , menimpa file host di iPhone

Ponsel memang menyimpan cache beberapa halaman web dan kueri DNS, jadi reboot atau membersihkan cache dapat membantu. Harapan yang membantu seseorang.

Simon.

Simon Timur
sumber
1
@Simon Saya mengikuti langkah yang sama, tetapi tidak berhasil. Kemudian saya mencoba mengubah pengaturan pengkodean, dan mendapatkannya! Anda harus mengonversi file host Anda ke ANSI di Notepad ++ sebelum Anda menyimpannya. Untuk siapa gagal mendapatkan file host bekerja; klik " Ubah ke ANSI " di bawah menu " Pengkodean ".
trkaplan
2
Anda juga dapat menggunakan aplikasi iFile dari Cydia untuk mengedit file host di perangkat Anda tanpa harus menggunakan komputer. Ad @ m
kirb
2
.. Dan ubah kata sandi default dari alpine ke yang lain!
Tieme
7

Mungkin ada, tetapi Anda tidak dapat mengubahnya di iPhone yang tidak di-jailbreak.

Dengan asumsi bahwa server web pengembangan Anda menggunakan Mac, mengapa Anda tidak cukup menggunakan nama Bonjour (mis. MyMac.local.), Bukan myrealwebserverontheinternet.com?

oefe
sumber
semua layanan web ada di server dalam jaringan LAN saya. Saya memiliki nama domain dan saya ingin memetakan nama domain saya ke server ini juga. dan bayangkan seseorang memberi Anda alamat untuk semua layanan webnya, dia meminta Anda untuk menanyakan layanan ini menggunakan alamat ini, dia dapat menunjukkan kepada Anda cara menambahkan file host ke mac, windows, tetapi tidak iphone: -s
Hoang Pham
6

Jika ada orang lain yang masuk ke halaman ini, Anda juga dapat menyelesaikannya dengan menggunakan alamat Ip di permintaan URL alih-alih domain:

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

Kemudian Anda menentukan Host secara manual:

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

Sejauh menyangkut server, itu akan berperilaku persis sama seperti jika Anda telah menggunakannya http://myserver/mypage.php, kecuali bahwa iPhone tidak perlu melakukan pencarian DNS.

100% API Publik.

ekscrypto
sumber
2
Namun ini hanya akan bekerja untuk permintaan pertama, jika mypage.php melakukan permintaan lain ke myserver maka aplikasi tidak akan melakukan konversi.
htafoya
Pendekatan ini bagus jika Anda tidak berniat menggunakan cookie.
DUzun
Nah. Ini juga tidak berhasil. Kami menggunakan SSL Pinning, jadi ketidakcocokan domain mengacaukannya: '017-07-13 10: 21: 42.244723-0400 ApperName [1015: 449748] libMobileGestalt MobileGestaltSupport.m: 153: pid 1015 (ApperName) tidak memiliki akses sandbox untuk frZQaeyWLUvLjeuEK43hmg dan TIDAK diberi judul dengan tepat 2017-07-13 10: 21: 42.244886-0400 UnionBank [1015: 449748] libMobileGestalt MobileGestalt.c: 550: tidak ada akses ke InverseDeviceID (lihat <rdar: // problem / 11744455>) '
codeslapper
5

Jangan ubah DNS di telepon. Sebagai gantinya, hubungkan dengan wifi ke jaringan lokal dan Anda siap.

Di kantor saya, kami memiliki server internal dengan DNS internal yang tidak terpapar ke Internet. Saya hanya menghubungkan dengan iPhone ke wifi kantor dan kemudian dapat mengaksesnya dengan baik.

YMMV, tetapi alih-alih mengonfigurasi DNS telepon, saya merasa bahwa hanya menyiapkan DNS internal lokal dan wifi adalah solusi yang lebih bersih dan mudah.

Jaanus
sumber
1

Tidak, aplikasi iPhone hanya dapat mengubah hal-hal di dalam kotak pasir kecilnya sendiri. (Dan bahkan ada hal-hal yang tidak dapat Anda ubah dengan cepat.)

Taruhan terbaik Anda mungkin menggunakan alamat IP server daripada nama host. Sedikit lebih sulit, tetapi tidak terlalu sulit jika Anda hanya perlu menyelesaikan satu alamat, akan menempatkan server DNS di Mac Anda dan mengkonfigurasi iPhone Anda untuk menggunakannya.

Stephen Darlington
sumber