วิธีทำให้ mDNS ใช้งานได้กับ Chrome บน Android


34

มีวิธีเชื่อมต่อกับhttp: //mylaptop.local/โดยใช้ Chrome บน Android หรือมีเบราว์เซอร์อื่นที่ใช้งานได้หรือไม่

ฉันเดินทางจากเครือข่ายหนึ่งไปยังอีกเครือข่ายด้วยแล็ปท็อปและโทรศัพท์ของฉันและฉันมักจะต้องเชื่อมต่อโทรศัพท์ของฉันกับเว็บไซต์บนแล็ปท็อปของฉัน ด้วย Safari บน iPhone ฉันสามารถใช้http: //mylaptop.local/ (โดยปกติจะกดปุ่ม reload บนหน้าต่างเบราว์เซอร์ที่เปิดอยู่) แต่ด้วยอุปกรณ์ Android ของฉันฉันต้องหา IP ปัจจุบันของแล็ปท็อปของฉันด้วยมือ และเชื่อมต่อกับมัน (ฉันไม่ได้ควบคุมเครือข่ายหลายแห่งที่ฉันเปิดอยู่และดูเหมือนว่าพวกเขาจะไม่ได้รวม DNS เข้ากับ DHCP)

ฉันค้นหาคำตอบแล้วดูเหมือนว่าคนส่วนใหญ่จะแฮ็คปัญหาโดยใช้ DNS แบบคงที่หรือควบคุม DHCP และ DNS ซึ่งไม่เหมาะกับสถานการณ์ของฉัน นอกจากนี้ฉันเห็นไลบรารี่โค้ดสำหรับการสนับสนุน mDNS (และ zeroconf อื่น ๆ ) ในแอปพลิเคชัน Android ที่เฉพาะเจาะจงดังนั้นบางทีอาจมี Chrome เพิ่มออกมาหรือเบราว์เซอร์อื่นที่รองรับ

นอกจากนี้มีคำอย่างเป็นทางการใด ๆ บนอุปกรณ์ที่รองรับ mDNS และโดเมน. local บน Android หรือไม่ ฉันมีปัญหาในการค้นหาเช่นกัน

คำตอบ:


17

ฉันไม่คิดอย่างนั้น

ตัวแก้ไข DNS ของระบบในแพลตฟอร์มของ Apple ได้รับการสนับสนุนในตัวสำหรับ mDNS ดังนั้นในที่สุดแอพพลิเคชั่นใด ๆ ก็จะใช้getaddrinfoฟังก์ชั่นหลักและรองรับ mDNS ใน URL และชื่อโฮสต์และอะไรก็ตาม

บน Android และแพลตฟอร์มอื่น ๆ แม้ว่าจะมีการเรียกใช้ Multicast DNS daemon และมีไลบรารีสำหรับใช้งานก็ตามการค้นหา DNS "ทั่วไป" จะไม่ทำเช่นนั้น ดังนั้นแม้ว่า Android รุ่นล่าสุดจะให้คุณสมบัติสำหรับนักพัฒนา mDNS ซึ่งเป็นส่วนหนึ่งของแพลตฟอร์ม แต่ส่วนใหญ่ไม่ได้ไปไกลเกินกว่าที่พวกเขาจะต้องใช้

มันช่างน่าเสียดาย แต่ AFAIK ไม่มีอะไรที่สั้นไปกว่าการสร้าง Android ที่คุณกำหนดเอง (หรือโน้มน้าวให้ Google เปลี่ยน) ที่สามารถแก้ไขปัญหานี้ได้


4
ง่อยเหลือเกิน! ต้องใช้เวลา 15 ปีกว่าที่ linux จะพูดคุยกับ windows และ mac ได้อย่างถูกต้องตอนนี้เราเห็นเรื่องราวเดิมอีกครั้ง ไม่รองรับ mDNS บน Android AirPrint ไม่รองรับ Android มาการทำงานร่วมกันจะต้องกลายเป็นกฎ!
Philipp

7
ฉันยื่นข้อผิดพลาดกับโครงการ Chromium โปรดติดดาว (งดเว้นจากความคิดเห็น +1) หากคุณพบปัญหานี้และต้องการแก้ไข crbug.com/405925
pwnall

1

นั่นไม่ใช่ความผิดของเบราว์เซอร์ แต่เป็นวิธีที่ Android จัดการกับ DHCP: เพียงละเว้นเซิร์ฟเวอร์ DNS ที่เสนอและยึดติดกับ Google DNS ที่กำหนดค่าไว้ล่วงหน้าซึ่งแน่นอนว่าไม่ทราบชื่อโฮสต์ท้องถิ่นของคุณ ดังนั้นนี่คือวิธีแก้ไข:

  1. เปิดการตั้งค่า
  2. นำทางไปยังWiFi
  3. นำทางไปยังรายการเครือข่าย WiFi ของคุณ
  4. แตะที่รายการค้างไว้เลือกที่จะแก้ไข
  5. เปิดใช้งานการตั้งค่าขั้นสูง
  6. สลับจาก DHCP เป็นแบบคงที่และแทนที่เซิร์ฟเวอร์ DNS ตัวแรก (ปกติ8.8.8.8) ด้วยตัวคุณเอง
  7. บันทึก

(เป็นทางเลือกคุณสามารถลองเปลี่ยนกลับเป็น DHCP หลังจากเปลี่ยนเซิร์ฟเวอร์ DNS แล้วดูว่าเก็บไว้หลังหรือไม่)

ตอนนี้ Android ควรใช้เซิร์ฟเวอร์ DNS ของคุณก่อนและเปลี่ยนเป็นเซิร์ฟเวอร์รองหากคุณไม่สามารถแก้ไขได้ ซึ่งหมายความว่าควรจะพบ "mylaptop.local" ของคุณตั้งแต่ Chrome หรือเบราว์เซอร์อื่นและแอปอื่น ๆ

ก่อนที่คุณจะถาม: การตั้งค่านี้ (ตามที่อธิบายไว้ข้างต้น) จะใช้กับ WiFi AP ที่แก้ไขแล้วเท่านั้น ดังนั้นไม่ต้องกังวลคุณสามารถส่งผลกระทบอื่น ๆ หากมีสิ่งใดเกิดขึ้นคุณสามารถลบ AP และสร้างใหม่ได้ทุกเมื่อ


15
เพียงชี้แจง คำถามเดิมไม่ได้เกี่ยวกับการใช้งานเซิร์ฟเวอร์ DNS ในท้องที่ แต่ใช้ mDNS (aka Bonjour) พร้อมกับชื่อโดเมน ". local" พิเศษซึ่งในบางระบบถูกตั้งค่าให้ใช้คำสั่ง mDNS แทนที่จะเป็น DNS
จูลส์

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