Wpis z mikrobloga

Ma ktoś pomysł na takie coś?:

Mam router, do niego podłączony mój PC i jakieś inne komputery też. Na PC miałbym jakiś serwer. Teraz wkracza do akcji telefon z androidem. W momencie podłączenia WIFI (proste) telefon szuka w tej sieci WIFI tego serwera. Pytanie jak? Za mało wiem o sieciach. Adresy dostawane przez DHCP routera to np 192.168.1.[100-255?] (ale spotkałem się też z innymi). Musiałbym w pętli po każdym adresie lecieć i... [jakieś polecenie z łączeniem - coś z portem, gniazda?] i gdybym trafił na taki serwer to jeszcze uwierzytelnienie [kod na telefonie == temu na serwerze PC]. Czy może jakoś inaczej? Nie mam przecież opcji pobrania z routera IP podłączonych urządzeń(?).

#programowanie #siecikomputerowe #pytanie
  • 7
@eloar: DynDNS ciekawa sprawa, ale nie. Chciałbym to tak napisać jako gotowy produkt (ale w celach nauki), że komuś daje apke, daje serwer, ustawia sobie klucz i samo mu wyszukuje i się łączy. Proste w użyciu.

Co znaczy to mapowanie MAC? Wiem co to MAC. Mam kilka pomysłów o co chodzi ale..
@fenix7557: Serwer czego? Jaką usługę wystawia?

Jeśli serwer też jest z DHCP i nie znasz jego adresu (tzn. takie jest założenie), ale jest w tej samej sieci lokalnej co klient (android) to aplikacja na androida powinna wziąć własne IP + Maskę które tel ma z DHCP. Na podstawie tego może sobie obliczyć ile jest adresów w sieci i odpytywać wszystkie po kolei.

Czego ma szukać? Otóż tej usługi która jest otwarta
Serwer to mocne słowo. Chodzi o program na PC, chyba byłoby to nasłuchiwanie na jakimś porcie. Android by przeszukiwał sieć w celu znalezienia mojego komputera, mojego programu (czyli tego portu otwartego) i na koniec już programistyczne porównanie jakiś ustalonych ręcznych kluczy jak user&password jak już nawiąże połączenie. Słabo znam sieć ale chyba trzeba byłoby szukać w pętli po IP tego portu otwartego? A co jeśli jakiś inny program korzysta z tego portu?
@fenix7557: W DHCP można ustawić tak, aby dla jakiegoś MAC adres IP był przypisany na stałe. Ale jeśli chcesz, aby aplikacja PC i Android były przenośne niezależnie od konfiguracji sieci, to jest kłopot, bo coś musi być stałe. Możesz tak jak Seru spróbować przeskanować sieć w poszukiwaniu maszyny wystawiającej usługę na wskazanym porcie, ale to może oznaczać inną usługę na porcie, który wybrałeś, albo w sieci może działać sprzęt uniemożliwiający takie
@fenix7557: jeżeli ty jesteś twórcą oprogramowania, to możesz użyć broadcastu do znalezienia odpowiedniej maszyny. ja bym to zrobił tak, że apka z telefonu wysyła zapytanie na broadcast, a serwer odpowiada tejże apce. port raczej musiałby być sztywno określony, ale przy wysokich numerach raczej trudno o kolizję.
takie rzeczy robi sie przy uzyciu mDNS. Twoj klient wysylalby zapytanie multicastowe o ip komputera z hostname "server", jezeli host jest w sieci powinien sie "oglosic". Poczytaj o multicast dns'ie i avahi (ktora jest implementacja dla linuxa) w przypadku MACow jest tez protokol bonjour.