ไฟล์โฮสต์อยู่บน iPhone หรือไม่ จะเปลี่ยนได้อย่างไร? [ปิด]


104

ฉันกำลังพัฒนาแอปพลิเคชันที่สอบถามไปยังเซิร์ฟเวอร์ ใน Mac ของฉันฉันใช้ไฟล์โฮสต์เพื่อเปลี่ยน DNS ให้ชี้ไปที่เซิร์ฟเวอร์ภายในภายในเครือข่ายท้องถิ่นของฉัน

ตอนนี้ฉันต้องการทดสอบกับ iPhone ของฉันปัญหาคือ iPhone ของฉันไม่รู้จักเซิร์ฟเวอร์นั้นเนื่องจากไม่มีการกำหนดค่าสำหรับ DNS

บน Mac หรือ Windows ของฉันฉันเพียงแค่เพิ่ม: 192.168.0.20 http://www.google.comไปยังไฟล์โฮสต์

ตอนนี้ฉันจะแจ้งให้ iPhone ทราบ URL ได้http://www.google.comอย่างไร: ?


Jailbreak iPhone ของคุณดาวน์โหลด iFile ไปที่/etc/และเปิดไฟล์ที่เรียกว่าhostsในโปรแกรมดูข้อความ ตอนนี้คุณสามารถแก้ไขได้

Local Development บน iPhone พร้อม OSX และ Charles Web Proxy deployfx.com/2011/08/…
jfroom

1
OSX iOS Simulator และอัปเดตไฟล์ / etc / hosts ของคุณ
dmarvasti

อีกทางเลือกหนึ่ง: ติดตั้ง Bonjour (sudo apt-get install avahi-daemon avahi-utils) และเข้าถึงผ่านhostname.localบน iphone / ipad
Saša Tomislav Mataić

ฉันแปลกใจที่ไม่เห็นคำตอบแบบนี้ซึ่งใช้ได้ผลกับฉัน: stackoverflow.com/a/41857012/470749
Ryan

คำตอบ:


37

สิ่งนี้ไม่ได้ตอบคำถามของคุณโดยตรง แต่ช่วยแก้ปัญหาของคุณได้ ...

คุณมีเราเตอร์อะไรบ้าง? เฟิร์มแวร์เราเตอร์ของคุณอาจอนุญาตให้คุณตั้งค่าระเบียน DNS สำหรับเครือข่ายท้องถิ่นของคุณ นี่คือสิ่งที่ฉันทำกับเฟิร์มแวร์ Tomato


ขอบคุณนี่คือสิ่งที่ฉันทำเพื่อแก้ปัญหา;)
Hoang Pham

ฉันใช้วิธีนี้เช่นกันยกเว้นฉันใช้ pfsense
รหัส

มันจะทำงานอย่างไรฉันก็มีปัญหาเดียวกันฉันใช้เราเตอร์ 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
Local Development บน iPhone พร้อม OSX และ Charles Web Proxy deployfx.com/2011/08/…
jfroom

1
นี้เป็นเครื่องมือที่ดีที่จะมีในคลังแสงสำหรับการพัฒนาแอพพ์มือถือ - ไม่เพียง แต่สำหรับการค้นหา DNS
JoshuaDavid

32

ไม่เกี่ยวกับการเขียนโปรแกรม แต่ฉันจะตอบ มันอยู่ใน/etc/hosts.

คุณสามารถเปลี่ยนได้ด้วยโปรแกรมแก้ไขข้อความง่ายๆเช่นnano.

(แน่นอนว่าคุณต้องมี iphone ที่เจลเบรคสำหรับสิ่งนี้)


3
คุณไม่สามารถใช้ nano บน vanilla iphone เพื่อไปที่ / etc / hosts โดยตรง ฉันคิดว่าเป็นแอพที่จะแจกจ่ายซึ่งในกรณีนี้คุณไม่สามารถยุ่งกับไฟล์นอกแซนด์บ็อกซ์ของคุณได้
Jaanus

@ Jaanus: แน่นอนว่าฉันหมายถึง iPhone ที่เจลเบรคแล้ว และเขาไม่เคยพูดอะไรเกี่ยวกับแอปที่ถูกแจกจ่ายซ้ำ เขาบอกเพียงว่าเขาจำเป็นต้องทดสอบบน iPhone ของเขาซึ่งมีปัญหา DNS
Thomas Bonini

16
ฉันไม่เข้าใจการลงคะแนน คำตอบนั้นถูกต้องในทางเทคนิคและเขียนได้ดี
Thomas Bonini

2
ฉันจะคืนผลกรรมบางอย่างเพื่อแก้ไข หากมีการใช้การโหวตลดลงเนื่องจาก'สำหรับแอปแบบกระจาย' โดยนัยแล้วในขณะที่ฉันสามารถเข้าใจได้ฉันคิดว่าผู้โหวตควรแสดงความคิดเห็นเพื่ออธิบายสิ่งนั้น
เดวิดกล่าวว่าคืนสถานะโมนิกาใน

2
ฉันคิดว่าเขาต้องการเพียงแค่เปลี่ยนไฟล์โฮสต์เพื่อให้เขาสามารถทดสอบแอปของเขาได้ เมื่อทดสอบแล้วไม่จำเป็นต้องเปลี่ยนไฟล์โฮสต์ เป็นที่ยอมรับอย่างสมบูรณ์เพื่อแนะนำการแหกคุกที่นี่!
Mongus Pong

14

ฉันเพิ่งแก้ไขไฟล์ 'โฮสต์' ของ iPhone ของฉันสำเร็จ (บน Jailbroken iOS 4.0)

  • ติดตั้งOpenSSHบน iPhone ผ่าน Cydia
  • ใช้ไคลเอนต์ SFTPเช่นFileZillaบนคอมพิวเตอร์ฉันเชื่อมต่อกับ iPhone
    • ที่อยู่: [ใช้ที่อยู่ IP หรือชื่อโฮสต์ของโทรศัพท์ของคุณเช่น. simophone.local]
    • ชื่อผู้ใช้: root
    • รหัสผ่าน: alpine
  • ตั้งอยู่/etc/hostsไฟล์
  • ทำการสำรองข้อมูลบนคอมพิวเตอร์ของฉัน (ในกรณีที่ฉันต้องการยกเลิกการเปลี่ยนแปลงในภายหลัง)
  • แก้ไขไฟล์โฮสต์ในโปรแกรมแก้ไขข้อความที่เหมาะสม (เช่นNotepad ++ ) ดูที่นี่สำหรับคำอธิบายของแฟ้มเจ้าภาพ
  • อัปโหลดการเปลี่ยนแปลงเขียนทับไฟล์โฮสต์บน iPhone

โทรศัพท์จะแคชบางหน้าเว็บและแบบสอบถาม DNS ดังนั้นการรีบูตหรือล้างแคชอาจช่วยได้ หวังว่าจะช่วยใครบางคน

ไซม่อน.


1
@Simon ฉันทำตามขั้นตอนเดิม แต่ไม่ได้ผล จากนั้นฉันพยายามเปลี่ยนการตั้งค่าการเข้ารหัสและรับมัน! คุณต้องแปลงไฟล์โฮสต์ของคุณเป็น ANSI ใน Notepad ++ ก่อนจึงจะบันทึกได้ สำหรับผู้ที่ไม่สามารถทำให้ไฟล์โฮสต์ทำงานได้ คลิก " Convert to ANSI " ใต้เมนู " Encoding "
trkaplan

2
คุณยังสามารถใช้แอพ iFile จาก Cydia เพื่อแก้ไขไฟล์โฮสต์บนอุปกรณ์ของคุณโดยไม่ต้องใช้คอมพิวเตอร์ Ad @ m
kirb

2
.. และเปลี่ยนรหัสผ่านเริ่มต้นจากอัลไพน์เป็นอย่างอื่น!
Tieme

7

อาจมีอยู่ แต่คุณไม่สามารถเปลี่ยนได้ใน iPhone ที่ไม่ได้เจลเบรก

สมมติว่าเว็บเซิร์ฟเวอร์การพัฒนาของคุณอยู่บน Mac ทำไมคุณไม่ใช้ชื่อ Bonjour (เช่นMyMac.local.) แทนmyrealwebserverontheinternet.comล่ะ?


บริการเว็บทั้งหมดมีอยู่ในเซิร์ฟเวอร์ภายในเครือข่าย LAN ของฉัน ฉันมีชื่อโดเมนและต้องการแมปชื่อโดเมนของฉันกับเซิร์ฟเวอร์นี้ด้วย และไม่แปลกใจที่มีคนให้ที่อยู่สำหรับบริการเว็บทั้งหมดของเขาเขาขอให้คุณสอบถามบริการเหล่านี้โดยใช้ที่อยู่นี้เขาสามารถแสดงวิธีเพิ่มไฟล์โฮสต์ลงใน 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

API สาธารณะ 100%


2
อย่างไรก็ตามสิ่งนี้จะใช้ได้กับคำขอแรกเท่านั้นหาก mypage.php ส่งคำขออื่นใดไปยัง myserver แอปจะไม่ทำการแปลง
htafoya

แนวทางนี้ดีหากคุณไม่ต้องการใช้คุกกี้
DUzun

ไม่. สิ่งนี้ไม่ได้ผลเช่นกัน เรากำลังใช้ SSL Pinning ดังนั้นโดเมนไม่ตรงกันจึงทำให้เกิดความสับสน: '017-07-13 10: 21: 42.244723-0400 ApperName [1015: 449748] libMobileGestalt MobileGestaltSupport.m: 153: pid 1015 (ApperName) ไม่มีการเข้าถึง Sandbox สำหรับ frZQaeyWLUvLjeuEK43hmg และไม่ได้รับสิทธิ์อย่างเหมาะสม 2017-07-13 10: 21: 42.244886-0400 UnionBank [1015: 449748] libMobileGestalt MobileGestalt.c: 550: ไม่สามารถเข้าถึง InverseDeviceID ได้ (ดู <rdar: // problem / 11744455>) '
codeslapper

5

อย่าเปลี่ยน DNS บนโทรศัพท์ แต่ให้เชื่อมต่อด้วย wifi กับเครือข่ายท้องถิ่นและคุณพร้อมแล้ว

ที่สำนักงานของฉันเรามีเซิร์ฟเวอร์ภายในที่มี DNS ภายในที่ไม่เปิดเผยต่ออินเทอร์เน็ต ฉันแค่เชื่อมต่อกับ iPhone กับ wifi สำนักงานจากนั้นก็สามารถเข้าถึงได้ดี

YMMV แต่แทนที่จะกำหนดค่า DNS ของโทรศัพท์ฉันรู้สึกว่าการตั้งค่า DNS และ wifi ภายในเครื่องเป็นวิธีที่สะอาดและง่ายกว่า


1

ไม่แอปพลิเคชัน iPhone สามารถเปลี่ยนสิ่งของภายใน Sandbox ของตัวเองได้เท่านั้น (และยังมีบางสิ่งที่คุณไม่สามารถเปลี่ยนแปลงได้ทันที)

ทางออกที่ดีที่สุดของคุณคือการใช้ที่อยู่ IP ของเซิร์ฟเวอร์มากกว่าชื่อโฮสต์ เล็กน้อยยาก แต่ไม่ว่ายากถ้าคุณเพียงต้องการที่จะแก้ปัญหาที่อยู่เดียวจะใส่เซิร์ฟเวอร์ DNS บน Mac ของคุณและกำหนดค่า iPhone ของคุณให้การใช้งานที่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.