Linux ani Android nevidí mDNS hostname, Windows áno

Linux ani Android nevidí mDNS hostname, Windows áno
« kdy: 03. 08. 2023, 23:35:35 »
Vyvýjam zariadenie ktoré sa cez wifi pripája do lokálnej domácej siete, kam prenáša video z kamery, na zariadení beží jednoduchý http server. Na ktorý sa dá pripojiť cez IPadresu zariadenia.

Keďže IP adresy si málokto pamatá, použil som mDNS a nastavil som zariadeniu host name camera.

inými slovami do prehliadača zadám:

http://camera/

a môžem si v prehliadači pozerať video, ktoré kamera zaznamenala.

Problém je že to funguje len vo Windows-e. Nefunguje to ani na Android telefóne, ani na desktopovom Arch Linuxe. Tam to ide len cez IP. A ja to na Linuxe vyvýjam.

O technológii mDNS toho veľa neviem (chcel som zariadeniu nastaviť host tak som išiel podľa príkladov čo som našiel na stránke výrobcu SoC), ale nejde mi do hlavy prečo vo Windowse ide všetko podľa očakávania a  linuxe ani androide nie. Prosím čo mám urobiť?


Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #1 kdy: 03. 08. 2023, 23:38:16 »
ešte doplním kód

Kód: [Vybrat]
...
#include <mdns.h>

static esp_err_t start_mdns_service()
{
    auto err = mdns_init();
    if (err) {
        std::wcout
            << L"MDNS Init failed: "
            << err
            << std::endl;
        return ESP_FAIL;
    }
    mdns_hostname_set("camera");
    mdns_instance_name_set("Pluton Corp. Camera");
    return ESP_OK;
}

...
ESP_ERROR_CHECK(start_mdns_service());
...

Ale myslím že ho mám vporiadku.

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #2 kdy: 04. 08. 2023, 09:27:16 »
Zkus na linuxu do /etc/systemd/resolved.conf přidat řádek:
Kód: [Vybrat]
ResolveUnicastSingleLabel=yes

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #3 kdy: 04. 08. 2023, 09:59:30 »
zkus to zařízení pojmenovat camera.local. Pokud si správně pamatuju, linux má v defaultu že hledá adresy v "TLD" .local

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #4 kdy: 04. 08. 2023, 20:59:26 »
Ďakujem Vám za snahu o pomoc. Ale ani jedno nepomohlo pes bude zakopaný inde... Idem ďale googliť.


Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #5 kdy: 04. 08. 2023, 22:24:32 »
aky mas android?
"Starting from November 2021, Android resolver supports mDNS .local resolution"
cize podpora je az v android 12 a musis adresu davat ako camera.local

a v linuxe, ak dobre citam, by ti mal bezat avahi-daemon
« Poslední změna: 04. 08. 2023, 22:26:26 od MalyTomi »

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #6 kdy: 05. 08. 2023, 14:37:39 »
aky mas android?
"Starting from November 2021, Android resolver supports mDNS .local resolution"
cize podpora je az v android 12 a musis adresu davat ako camera.local

a v linuxe, ak dobre citam, by ti mal bezat avahi-daemon

Aha na novom telefone mi to funguje super (teraz som skusil). Na starom neviem aký mám android, ale ten ma ani moc nezaujíma, ten som používal len na ladenie. Ak to funguje na novom tak je všetko ok.

Ale na Arch (linuxe) je stále nejaký problém:

avahi-daemon som zapol:

Kód: [Vybrat]
systemctl enable avahi-daemon
aj do suboru /etc/nsswitch.conf som pridal riadok:

Kód: [Vybrat]
hosts: files mdns4_minimal dns mdns4

skusil som potom aj:

Kód: [Vybrat]
hosts: files mdns_minimal dns mdns a povodny som zakomentoval

Niečo sa zmenilo lebo debugger čo mám zapnutý priamo na zariadení mi niečo loguje, PC sa ako keby sa dopytoval (dotazoval) cez host ale stránka sa nakoniec ajtak nevráti. Pri pingu detto.
« Poslední změna: 05. 08. 2023, 14:39:47 od fortran1986 »

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #7 kdy: 05. 08. 2023, 14:57:41 »
Ono je to dosť dôelžité lebo nejakým spôsobom musím to zariadenie identifikovať.

Lebo keď pripojim zariadenie cez wifi do LAN nikde nemám záruku že IP adresa sa mu pridelí rovnaká.

najcastejsie sa prideluje 192.168.1.73 ale obcas aj 74, 75 alebo 76

Ono keby sa nedalo nastaviť DNS tak kludne može byť aj ina unikatna identifikacia... Lebo na desktope bude ajtak SW, ktorý bude so zariadeniami komunikoovať.

mDNS je najviac áuser friendly pre koncoveho usera ale určite existuju aj ine pôsoby no nič idem ďalej googliť.
« Poslední změna: 05. 08. 2023, 14:59:53 od fortran1986 »

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #8 kdy: 05. 08. 2023, 15:55:30 »
Tu lokalnu sieť musím v linuxe znovu nastaviť. Teraz som si spomenul, že ani KDE Connect mi nefungoval (vo FreeBSD všetko fungovalo a v linuxe ee). Niekde je niečo v neporiadku.

arp mi našiel len dve zariadenia (router a kamerku). aj keď je pravda. že väčšina je napojena nie priamo na router. ale cez opakovače switche a druhy koniec domu cez Wifi AP. Tak či tak v sieti je rozhodne viac zariadeni ako 2

k3dAR

  • *****
  • 3 005
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #9 kdy: 05. 08. 2023, 16:25:31 »
zkus to overit z Xubuntu Live USB kde Avahi by melo jet out-of-box...

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #10 kdy: 05. 08. 2023, 17:18:15 »
zkus to overit z Xubuntu Live USB kde Avahi by melo jet out-of-box...

Ďakujem za radu. Ale medzitým som to spojazdnil. Najjhoršie je že ani neviem presne ako, lebo som zúfalo nastavoval čo ma napadlo, ale myslím, že asi pomohlo nastavenie firewalld kde som popovoloval rôzne služby, čo by mohli mať súvis s lokálnou sieťou teda mdns atď.

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #11 kdy: 07. 08. 2023, 06:55:19 »
Co se týče debianu a podobných, jak píšeš.. důležitý je avahi-daemon a pak libnss-mdns balíček. A nic nikam nepřidáváš a mělo by to chodit. Ale jak jsem psal výše, je to jen pro doménu .local (takže to musí být camera.local)

Re:Linux ani Android nevidí mDNS hostname, Windows áno
« Odpověď #12 kdy: 07. 08. 2023, 08:30:55 »
ja som doma ip a hostname vyriesil tak, ze to nastavujem na routri. na dhcp mam rezrvovane IP, takze zariadenie vzdy dostane tu istu, a hostname mam tiez na routri. takze na zariadeni nemusi bezat nic, staci, ked ma dhcp a aj hostname moze mat rozny.