Sieci komputerowe – Adres IPv4, resolver – rozwiązywanie nazw/DNS

Strona przedmiotu: http://eti.agh.edu.pl/sieci/

Przydatne stronki:
to co wyżej w formie skryptu
inne:
Przykładowy kod:

Zadanie 1 (2p)
Napisać  program obliczający:  adres  rozgłoszeniowy  oraz  numer  sieci  na  podstawie  adresu  i  maski
zapisanego w następujący sposób xxx.yyy.zzz.xxx/m (m – ilość bitów maski)
Moim zdaniem wyjaśnienie do ćwiczenia jest napisane niezrozumiale, dlatego warto się uczyć ze skryptu. Celem zadania jest zapoznanie nas ze strukturą in_addr z bibliteki arpa/inet.h, oraz jej niektórymi funkcjami. Dobrze jest też wiedzieć co to jest adres rozgłoszeniowy, na ten temat można poczytać na wiki.

Wyznaczanie adresu rozgloszeniowego (źródło: wikipedia):

Aby wyznaczyć adres broadcast (adres rozgłoszeniowy) dla danej sieci, musimy znać adres samego hosta oraz maskę podsieci. Załóżmy, że adres hosta to 212.51.219.32, co w przeliczeniu na system binarny daje nam: 11010100.00110011.11011011.00100000, zaś maska podsieci to 255.255.255.192, binarnie: 11111111.11111111.11111111.11000000. oznacza to, że mamy 26 bitów sieci (26 jedynek) i 6 bitów hosta. Cała operacja sprowadza się do wstawienia w adres IP jedynek na ostatnich n pozycjach, na których w masce znajdują się zera, gdzie n oznacza liczbę bitów hosta. W tym przypadku 6

11010100.00110011.11011011.00100000 adresIP
11111111.11111111.11111111.11000000 maska
11010100.00110011.11011011.00111111 broadcast

Używając logicznych wyrażeń bitowych operację tę możemy zapisać jako:

broadcast = adresIP Alternatywa! maska )

Zatem adres broadcast to 11010100.00110011.11011011.00111111, co w przeliczeniu na system dziesiętny daje nam 212.51.219.63.

rozwiązanie


Zadanie 2 (2p)
Napisać program odnajdujący nazwę hosta dla podanego jako argument  adresu IP dla IPv4.

Rozwiązanie: Podajemy nazwę IP w postaci np. “213.180.146.27” funkcji gethostbyaddr() lub getnameinfo() i wypisujemy na ekranie nazwę hosta np “www.onet.pl”.

getnameinfo():
http://beej.us/guide/bgnet/output/html/multipage/getnameinfoman.html

rozwiązanie1 – getnameinfo()
rozwiązanie2 – gethostbyaddr()

 


Zadanie 3(1p)
Napisać program odnajdujący adres IP hosta, którego nazwa podana jest jako argument dla IPv4.

Rozwiązanie: Podajemy nazwę hosta w postaci np. “www.onet.pl” funkcji gethostbyname() lub getaddrinfo() i wymisujemy IP.

Linki z przykładowym użyciem funkcji getaddrinfo():
http://beej.us/guide/bgnet/output/html/multipage/getaddrinfoman.html

getaddrinfo():
http://en.wikipedia.org/wiki/Getaddrinfo

rozwiązanie – getaddrinfo() – z zajęć
rozwiązanie2 – gethostbyname() – krótsze i łatwiejsze


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s