Jak uzyskać adres IP po podaniu adresu MAC

0

Stworzyłem aplikację klient-serwer, wszystko pięknie gdyby IP serwera było statyczne - wówczas wystarczyłoby podać raz adres IP i klient łączyłby się z serwerem, niestety gdy adres IP serwera jest przydzielany dynamiczne (a tak jest w większości dużych sieci) każdorazowo w klientach trzeba konfigurować adres IP serwera - takie rozwiązanie jest dla mnie niedopuszczalne. Zastanawiałem się nad możliwością rozwiązania problemu dynamicznego przydzielania IP serwera i doszedłem do wniosku że jedynym sposobem jest łączenie po przez adres MAC karty sieciowej serwera i stąd moje pytanie ...

jak po podaniu adresu MAC karty sieciowej uzyskać adres IP komputera w tej sieci sieci?

Z góry dziękuje za odpowiedz.
Pozdrawiam.

0

Do tego służy protokół RARP ale zakładam, że jego użycie nic Ci nie da bo jest to protokół nierutowalny. Może lepszym rozwiązaniem byłby DNS typu no-ip ?

0

Nie zawsze będzie to możliwe.
Różnie jest przydzielane IP z DHCPa. Możesz to zrobić wówczas, gdy na DHCPie są skonfigurowane adresy MAC kart sieciowych, które mają mieć przydzielone IP. A i tak nie wiem w jaki sposób. Ale są różne programy, dzięki którym serwer zachowuje się tak jakby miał stałe IP. Może w tą stronę pójdź.

Poza tym najlepsze wyjście byłoby takie, żeby załatwić stałe IP serwera.

0

Proponuję napisać scanning nr IP i odczytywanie MAC'a, którego znasz.

0

Może zamiast zajmować się łączeniem przez IP, pójść w stronę dynamicznych DNS.

0

Może to cię na coś naprowadzi http://msdn2.microsoft.com/en-us/library/aa366071.aspx

0

<< Może lepszym rozwiązaniem byłby DNS typu no-ip ?
...
<< Poza tym najlepsze wyjście byłoby takie, żeby załatwić stałe IP serwera.
...
<< Może zamiast zajmować się łączeniem przez IP, pójść w stronę dynamicznych DNS

Owszem jest to rozwiązanie, ale możliwe do zrealizowania na poziomie użytkownika końcowego (użytkownik (operator systemu) otrzymuje gotowy system (program/y) i to on dla własnej wygody musi zatroszczyć się o stałe IP dla komputera z uruchomioną aplikacją serwerową), zakładam jednak że operator jest wiedzoodporny albo leniwy ; -), dlatego jako projektant chciałbym sam rozwiązać problem dynamicznego IP komputera z uruchomioną aplikacją serwera - na poziomie kodu aplikacji (jedną z moich koncepcji jest właśnie identyfikacja serwera po adresie MAC, tudzież nazwie komputera na którym uruchomiona jest aplikacja serwerowa).

Powyższą myśl można wyrazić w prostych słowach: "nie mam żadnego wpływu na daną sieć, pozostaje mi tylko działalność na poziomie kodu aplikacji".

<< Proponuję napisać scanning nr IP i odczytywanie MAC'a, którego znasz.

W duzych sieciach pula adresów do sprawdzenia jest bardzo duża i ta metoda może okazać sie mało efektywna .

<<Może to cię na coś naprowadzi <<http://msdn2.microsoft.com/en-us/library/aa366071.aspx

Dzięki, link na pewno mi się przyda, ale raczej nie ma tam funkcji która pomoże rozwiązać ten konkretny problem.

Pozdrawiam.
</quote>

0

Mam rozwiązanie prymitywne do bólu, zrobione tak okrężną drogą, że aż boli, ale jest na tyle śmieszne, że nie mogłem się powstrzymać, żeby go nie napisać :D :D

  1. zakładasz stronę na darmowym serwerze obsługującym PHP
  2. piszesz skrypt PHP który odbierałby dwa komunikaty:
  • od serwera o rejestracji adresu IP, zapisywałby go sobie gdzieś w pliku
  • prośbę od klienta o podanie adresu IP serwera, odczytywałby go sobie z pliku

Rozwiązanie wbrew pozorom ma zalety ;)

  1. jeden skrypt mógłby bez problemu obsługiwać wiele serwerów, wystarczyłoby, żeby każdy oprócz IP podawał swoją unikalną nazwę. Później klienci prosiliby o IP serwera o konkretnej nazwie
  2. jest prościutkie do napisania
  3. twoi użytkownicy nie musieliby się niczym przejmować, zero wymagań co do sieci, w której program pracuje, po prostu musi być komunikacja z www

A jakie są wady, to każdy widzi ;P

0

Nie wiem do końca, czy to by działało jak należy (dawno nie robiłem nic w sieciach :p), ale może puść z klienta broadcast przez UDP, a serwer odpowie adresem IP.

0

generalnie nie da sie pobarc IP na pdst MAC (i odwrotnie)
tzn dac sie da, ale tylko przy bezposrednim polaczeniu obu hostow...
np twoj komputer pobierze MAC/IP komputera-bramy, albo np jezeli masz serwer sieci osiedlowej to on pobierze mac/ip komputerow klienckich, bramy, interfejsu wewnetrznego i zewnetrznego....
nie masz mozliwosci pobrac IP np wp.pl na podstawie adresu MAC karty wpietej w serwer wp.pl

0

Dziękuje za wszystkie odpowiedzi, zebrane w całość pozwoliły wyjaśnić mi kilka spraw i częściowo rozwiązać mój problem (poszedłem za tropem Ranidesa, jeżeli kogoś to interesuje to: serwer zapisuje swój IP na serwerze w pliku tekstowym, klient po uruchomieniu wczytuje IP serwera z pliku na serwerze).

Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1