Cum se face ca mDNS să funcționeze pentru Chrome pe Android? (Android, Chrome Pentru Android)

fess a intrebat.

Există o modalitate de a vă conecta la http://mylaptop.local/ folosind Chrome pe Android sau există un alt browser care funcționează?

Călătoresc din rețea în rețea cu laptopul și telefonul meu și deseori trebuie să conectez telefonul la un site web de pe laptop. Cu Safari de pe un iPhone pot folosi pur și simplu http://mylaptop.local/ (de obicei, apăsând pe reîncărcare într-o fereastră deschisă a browserului), dar cu dispozitivul meu Android trebuie întotdeauna să aflu IP-ul actual al laptopului meu, să-l introduc manual și să mă conectez la el (nu controlez multe dintre rețelele în care mă aflu și se pare că acestea nu au niciodată DNS integrat cu DHCP).

Am căutat un răspuns și se pare că majoritatea oamenilor pur și simplu ocolesc problemele folosind DNS static sau controlează DHCP și DNS, niciuna dintre acestea nu se aplică în situația mea. De asemenea, văd biblioteci de coduri pentru susținerea mDNS (și alte chestii zeroconf) într-o aplicație Android specifică, deci poate că există un add on Chrome sau un alt browser care să o suporte?

De asemenea, există vreun cuvânt oficial cu privire la suportul pentru mDNS și domeniul .local pe Android la nivel de dispozitiv? Am avut probleme în a găsi și asta.

2 răspunsuri
natevw

Nu cred că este așa.

Sistemul de rezolvare DNS de sistem din platformele Apple are suport încorporat pentru mDNS, astfel încât aproape orice aplicație ajunge în cele din urmă să folosească nucleul getaddrinfo funcția și suportând mDNS în URL-uri și nume de gazdă și altele.

Pe Android și pe alte platforme, chiar dacă există un daemon Multicast DNS care rulează și biblioteci disponibile pentru utilizarea acestuia, căutările DNS „tipice” fac nu. Astfel, deși versiunile recente de Android oferă dezvoltatorilor unele caracteristici mDNS ca parte a platformei, majoritatea nu se străduiesc (așa cum ar trebui să facă) să le folosească.

Este o nenorocire, dar AFAIK nu există nimic în afară de rularea propriei construcții personalizate de Android (sau de a convinge Google să o schimbe) care ar putea rezolva cu adevărat acest lucru.

Comentarii

  • Asta e atât de jalnic! A durat cam 15 ani pentru ca Linux să vorbească corect cu Windows și Mac, iar acum vedem din nou aceeași poveste. mDNS nu este suportat pe Android. AirPrint nu este acceptat pe Android. Haideți, interoperabilitatea trebuie să devină o regulă! –  > Por Philipp.
  • Am depus un bug împotriva proiectului Chromium. Vă rugăm să îl steluțați (abțineți-vă de la comentariile +1) dacă vă loviți de această problemă și doriți să fie rezolvată. crbug.com/405925 –  > Por pwnall.
Izzy

Asta nu este o greșeală a browserului, ci a modului în care Android gestionează DHCP: pur și simplu ignoră serverul DNS oferit și rămâne la DNS-ul Google pre-configurat – care, desigur, nu cunoaște numele de gazdă locale. Iată deci cum puteți rezolva această problemă:

  1. Deschideți Settings (Setări)
  2. Navigați la WiFi
  3. Navigați la intrarea rețelei WiFi.
  4. Atingeți lung intrarea, alegeți pentru a o edita.
  5. Activați Setări avansate
  6. Treceți de la DHCP la static și înlocuiți primul server DNS (de obicei 8.8.8.8) cu propriul dvs.
  7. Salvați

(opțional, ați putea încerca să treceți din nou la DHCP după ce ați schimbat serverul DNS și să vedeți dacă acesta din urmă se păstrează)

Acum, Android ar trebui să utilizeze mai întâi serverul dvs. DNS și să treacă la cel secundar numai dacă al dvs. nu poate rezolva. Ceea ce înseamnă că „mylaptop.local” ar trebui să fie găsit acum – din Chrome sau din orice alt browser și, de asemenea, din orice altă aplicație.

Înainte de a întreba: Această setare (așa cum a fost descrisă mai sus) s-ar aplica numai la AP WiFi modificat. Așa că nu vă faceți griji că ați putea afecta oricare altul. Dacă se întâmplă ceva nebunește, puteți oricând să ștergeți pur și simplu AP-ul și să îl recreați din nou.

Comentarii

    19

  • Doar pentru a clarifica; întrebarea inițială nu se referea, de fapt, la utilizarea serverului DNS local, ci la utilizarea mDNS (aka Bonjour) împreună cu numele de domeniu special „.local” care, pe unele sisteme, este configurat pentru a emite interogări mDNS mai degrabă decât DNS. –  > Por Jules.
  • Când setez o adresă IP statică, primesc în mod inexplicabil „network is unreachable” pe toate dispozitivele din subrețeaua locală. –  > Por Michael.