Come far funzionare mDNS per Chrome su Android?


35

C'è un modo per connettersi a http: //mylaptop.local/ usando Chrome su Android o c'è un altro browser che funziona?

Viaggio da una rete all'altra con il mio laptop e il mio telefono e spesso devo collegare il mio telefono a un sito Web sul mio laptop. Con Safari su un iPhone posso semplicemente usare http: //mylaptop.local/ (di solito colpire la ricarica su una finestra del browser aperta), ma con il mio dispositivo Android devo sempre capire l'IP corrente del mio laptop inserendolo a mano e connettersi ad esso (non controllo molte delle reti su cui sono attivo e sembra che il DNS non sia mai integrato con DHCP).

Ho cercato una risposta e sembra che molte persone si limitino a risolvere i problemi utilizzando il DNS statico, oppure controllano DHCP e DNS, nessuno dei quali si applica alla mia situazione. Inoltre vedo librerie di codici per supportare mDNS (e altre cose di zeroconf) in una specifica applicazione Android, quindi forse c'è un componente aggiuntivo di Chrome là fuori, o qualche altro browser che lo supporta?

Inoltre, esiste una parola ufficiale sul supporto a livello di dispositivo per mDNS e dominio .local su Android? Ho avuto problemi anche a trovarlo.

Risposte:


17

Io non la penso così.

Il resolver DNS di sistema nelle piattaforme Apple ha il supporto integrato per mDNS, quindi praticamente ogni app finisce per usare la getaddrinfofunzione principale e supportare mDNS in URL e nomi host e quant'altro.

Su Android e altre piattaforme, anche se è in esecuzione un demone DNS multicast e sono disponibili librerie per utilizzarlo, le ricerche DNS "tipiche" non lo fanno . Quindi, mentre le recenti versioni di Android offrono agli sviluppatori alcune funzionalità mDNS come parte della piattaforma, la maggior parte non fa di tutto (come dovrebbero fare) per usarle.

È un peccato, ma AFAIK non è altro che lanciare la tua build Android personalizzata (o convincere Google a cambiarla) che potrebbe davvero risolverlo.


4
È così zoppo! Ci sono voluti 15 anni prima che Linux parlasse correttamente con Windows e Mac, ora vediamo di nuovo la stessa storia. mDNS non supportato su Android. AirPrint non supportato su Android. Dai, l'interoperabilità deve diventare la regola!
Philipp

7
Ho presentato un bug contro il progetto Chromium. Per favore, astenilo (astenersi da +1 commenti) se incontri questo problema e desideri risolverlo. crbug.com/405925
pwnall

1

Questo non è un difetto del browser, ma del modo in cui Android gestisce il DHCP: ignora semplicemente il server DNS offerto e si attacca al suo DNS di Google preconfigurato, che ovviamente non conosce i nomi host locali. Quindi ecco come aggirare questo:

  1. Apri Impostazioni
  2. Vai a WiFi
  3. Passa alla voce della tua rete WiFi.
  4. Tocca a lungo la voce, scegli di modificare.
  5. Attiva le impostazioni avanzate
  6. Passa da DHCP a statico e sostituisci il primo server DNS (di solito 8.8.8.8) con il tuo
  7. Salvare

(facoltativamente potresti provare a tornare al DHCP dopo aver modificato il server DNS e vedere se quest'ultimo è mantenuto)

Ora Android dovrebbe usare prima il tuo server DNS e passare al secondario solo se il tuo non è in grado di risolverlo. Ciò significa che il tuo "mylaptop.local" dovrebbe essere trovato ora - da Chrome o da qualsiasi altro browser e anche da qualsiasi altra app.

Prima di chiedere: questa impostazione (come descritto sopra) si applica solo all'AP WiFi modificato. Quindi non preoccuparti che potresti influenzare qualsiasi altro. Se qualcosa si scatena, puoi sempre eliminare l'AP e ricrearlo.


15
Giusto per chiarire; la domanda originale non riguardava in realtà l'utilizzo del server DNS locale, ma l'uso di mDNS (aka Bonjour) insieme allo speciale nome di dominio ".local" che su alcuni sistemi è impostato per inviare query mDNS anziché DNS.
Jules

Quando imposto un indirizzo IP statico ottengo inspiegabilmente "la rete non è raggiungibile" su tutti i dispositivi nella sottorete locale.
Michael,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.