Protokół DNS. Aplikacja dnsquery

Wielkość: px
Rozpocząć pokaz od strony:

Download "Protokół DNS. Aplikacja dnsquery"

Transkrypt

1 Protokół DNS Domain Name System Aplikacja dnsquery dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

2 Protokół DNS DNS, (ang.) Domain Name System. Specyfikacje protokołu i usługi DNS: RFC 1034, P.V. Mockapetris, Domain names - concepts and facilities. RFC 1035, P.V. Mockapetris, Domain names - implementation and specification. RFC 1995, M. Ohta, Incremental Zone Transfer in DNS. RFC 2136, P. Vixie, Ed., S. Thomson, Y. Rekhter, Dynamic Updates in the Domain Name System (DNS UPDATE). RFC 2181, R. Elz, R. Bush, Clarifications to the DNS Specification. RFC M. Andrews, Negative Caching of DNS Queries (DNS NCACHE). RFC 2537, D. Eastlake, RSA/MD5 KEYs and SIGs in the Domain Name System (DNS). RFC 3596, S. Thomson, C. Huitema, V. Ksinant, M. Souissi, DNS Extensions to Support IP Version 6. W warstwie transportowej modelu referencyjnego dla OSI protokół DNS wykorzystuje: protokół UDP, port serwera DNS 53, protokół TCP, port serwera DNS 53. Wiadomości przesyłane w protokole UDP mogą mieć maks. wielkość 512 bajtów (bez nagłówka IP, UDP). Protokół UDP stosowany jest do standardowych zapytań do serwera nazw. Do transferu informacji o strafach serwery nazw powinny stosować protokół TCP. 2

3 Protokół i usługa DNS Protokół DNS wykorzystywany jest przez usługę DNS, (ang.) Domain Name System Service. Domain Name System jest hierarchiczna, rozproszoną bazą danych. System DNS definiuje: schemat baz DNS, mechanizm zapytań i uaktualniania danych w bazach DNS, mechanizm replikacji danych między bazami. Usługa DNS pozwala użytkownikom sieci na posługiwanie się do lokalizacji sieci, hostów, usług nazw dns owych ('naturalnych nazw i adresów) zamiast adresów IP. Usługa DNS służy do tłumaczenia nazw sieci (nazw domen), dns owych nazw hostów, dns owych adresów serwerów usług, URL na ich adresy IP. Usługa DNS została zaimplementowana po raz pierwszy: w 1984 w systemie Windows NT Server 4, w systemie UNIX BSD 4.3, jako BIND, (ang.) Berkeley Internet Name Domain (1986). 3

4 Komponenty systemu DNS Komponenty systemu DNS: DOMAIN NAME SPACE - struktura (hierarchia) drzewa nazw w domenach. RESOURCE RECORDS - struktura danych w bazach DNS. NAME SERVERS - serwery nazw, oprogramowanie służące do wykonywania operacji na bazach DNS. RESOLVERS - programy które pośredniczą w komunikacji między programem użytkownika a serwerami nazw. Resolvery znajdują się po stronie klienta i serwera. Zewnetrzny serwer nazw Baza DNS Program Uzytkownika Pytanie Pytanie Resolver Odpowiedz Pytanie Odpowiedz Odpowiedz Serwer nazw cache Baza DNS Konfiguracja uslugi DNS 4

5 Protokół i usługa DNS Usługa DNS wprowadza hierarchie nazw dla sieci, podsieci w Internecie. Hosty, podsieci, sieci grupowane są w domeny dn sowe. Domena - jest zbiorem hostów, zbiorem sieci charakteryzujących się wspólnymi zasadami zarządzania, bezpieczeństwa, wspólną nazwą. Domeny, i ich nazwy, posiadają hierarchiczną strukturę. Na szczycie hierarchii znajduje się domena główna (root domain). Informacja o domenach jest zawarta w rozproszonej bazie, znajdujących się na serwerach nazw (name servers). Strefa - (ang.) zone, podzbiór obszaru nazw DNS zarządzany przez jeden serwer nazw. Nazwa domeny - to ciąg nazw poszczególnych obszarów w hierarchii domeny oddzielonych kropkami. Przykład: Nazwa domeny. math.uni.opole.pl Przykład: Nazwa hosta w domenie math.uni.opole.pl o netbiosowej nazwie host1. host1.math.uni.opole.pl 5

6 Narzędzie nslookup RFC 2151, G. Kessler, S. Sheppard,'A Primer On Internet and TCP/IP Tools and Utilities', Nslookup narzędzie umożliwiające wyszukiwanie danych na serwerach DNS, służące również do testowania połączeń z serwerem DNS. Składnia: nslookup [-opcja] [nazwa_hosta] [serwer] Wybrae opcje: all - drukuje opcje, informacje o bieżącym serwerze i hoście [no]defname - dołącza nazwę domeny do każdej kwerendy [no]recurse - prosi o rekurencyjną odpowiedź na kwerendę [no]search - używa listy przeszukiwania domen domain=nazwa - ustawia domyślną nazwę domeny na NAZWA srchlist=n1[/n2/.../n6] - ustawia domenę na N1, a listę przeszukiwania na N1, N2, itd. root=nazwa - ustawia serwer główny na NAZWA retry=x - ustawia liczbę ponawianych prób na X timeout=x - ustawia początkowy limit czasu na X sekund type=x - ustawia typ kwerendy (np. A, ANY, CNAME, MX, NS, PTR, SOA, SRV) class=x - ustawia klasę zapytania (np. IN (Internet), ANY) [no]msxfr - używa szybkiego transferu strefy MS ixfrver=x - bieżąca wersja używana w żądaniu transferu IXFR 6

7 Specyfikacja struktury GUID Nazwa struktury : GUID Opis : Struktura GUID opisuje identyfikator obiektu globally unique identifier. Atrybuty : Data1 - wartość unsigned long integer. Data2 - wartość unsigned short integer. Data3 - wartość unsigned short integer. Data4 tablica unsigned characters. Implementacja struktury GUID: typedef struct _GUID unsigned long unsigned short unsigned short unsigned char GUID; Data1; Data2; Data3; Data4[8]; 7

8 Specyfikacja struktury AFPROTOCOLS Nazwa struktury : AFPROTOCOLS Opis : Struktura AFPROTOCOLS dostarcza listę protokołów do jakich programiści mogą ograniczyć zapytania. Atrybuty : iaddressfamily iprotocol Rodzina adresów do jakich zapytanie ma być ograniczone. Protokół do jakiego zapytanie ma być ograniczone. Implementacja struktury AFPROTOCOLS: typedef struct _AFPROTOCOLS INT iaddressfamily; INT iprotocol; AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; 8

9 Specyfikacja struktury AFPROTOCOLS Tablica afproto[2] Tablica afproto[2]. AFPROTOCOLS afproto[2] = AF_INET, IPPROTO_UDP, AF_INET, IPPROTO_TCP ; AF_INET- oznacza rodzinę adresów TCP/IPv4, (inne wartości: AF_INET6, AF_UNSPEC). Opcja gniazda: IPPROTO_UDP Wartość: UDP_NOCHECKSUM Typ: BOOL Jeżeli ta opcja jest ustawiona, datagramy UDP są wysyłane z zerową sumą kontrolną. Obsługa tej opcji jest wymagana. Jeżeli service provider nie posiada mechanizmu blokowania liczenia sumy kontrolnej, może ignorować tą opcję. Opcja gniazda: IPPROTO_TCP Wartość: TCP_EXPEDITED_1122 RFC 11 22, R. Braden, Requirements for Internet Hosts - Communication Layers, Typ: BOOL Jeżeli opcja jest ustawiona, service provider implementuje format wysyłanych danych zgodnie ze specyfikacją RFC W pozostałych przypadkach, jako format domyślny, używany jest format Berkeley Software Distribution (BSD). Opcja jest ustawiana dla połączenia tylko raz, tzn. nie może być zmieniana lub wyłączona w trakcie połączenia. Opcja nie jest wymagana. 9

10 Nazwa struktury : WSAQUERYSET Opis: Specyfikacja struktury WSAQUERYSET Struktura WSAQUERYSET dostarcza informacji o danej usłudze: ID klasy usługi (service class ID), nazwę usługi, identyfikator obszaru nazw (name-space identifier), adresy IP z portami na których nasłuchuje serwer usługi. Atrybuty : dwsize Musi być wartość sizeof(wsaqueryset). Parametr służy do określenia wersji. lpszserviceinstancename - Parametr opcjonalny. Wskaźnik do nazwy usługi. lpserviceclassid - Parametr wymagany. GUID dla danej klasy usługi. lpversion - Parametr opcjonalny. Wskaźnik do zmiennej zawierającej wymaganą wersję. lpszcomment - Parametr ignorowanych przy zapytaniach. dwnamespace - Identyfikator obszaru nazw do którego ma być ograniczone przeszukiwane informacji o usłudze (parametr NS_ALL oznacza przeszukiwanie wszystkich obszarów nazw). lpnsproviderid - Parametr opcjonalny. Wskaźnik do GUID w określonym obszarze nazw service provider, zapytania są ograniczane tylko do tego sp. lpszcontext - Parametr opcjonalny. Wskaźnik określa początkowy obszar nazw do którego będzie wysłane zapytanie. dwnumberofprotocols Wielkość tablicy zawierającej listę protokołów do których ograniczone są zapytania (w bajtach). Wartość może być zero. lpafpprotocols - Parametr opcjonalny. Wskazuje na tablice struktur AFPROTOCOLS. Only services that utilize these protocols will be returned. lpszquerystring - Parametr opcjonalny. Pewne obszary nazw (jak Whois++) posiadają mechanizm obsługi enriched SQL-like queries które zawierają zapytania w formacie string txt. Parametr służy do określania tego stringu. dwnumberofcsaddrs - Parametr ignorowanych przy zapytaniach. lpcsabuffer - Parametr ignorowanych przy zapytaniach. dwoutputflags - Parametr ignorowanych przy zapytaniach. lpblob - Parametr opcjonalny. Wskaźnik do określonego providera (pointer to a providerspecific entity). 10

11 Implementacja struktury WSAQUERYSET typedef struct _WSAQuerySet DWORD dwsize; LPTSTR lpszserviceinstancename; LPGUID lpserviceclassid; LPWSAVERSION lpversion; LPTSTR lpszcomment; DWORD dwnamespace; LPGUID lpnsproviderid; LPTSTR lpszcontext; DWORD dwnumberofprotocols; LPAFPROTOCOLS lpafpprotocols; LPTSTR lpszquerystring; DWORD dwnumberofcsaddrs; LPCSADDR_INFO pcsabuffer; DWORD dwoutputflags; LPBLOB pblob; WSAQUERYSET, *PWSAQUERYSETW; 11

12 Specyfikacja struktury BLOB Nazwa struktury : BLOB Opis : Struktura BLOB, (wyznaczana z Binary Large Object) zawiera informację o bloku danych. Atrybuty : cbsize - Wielkość bloku danych (w bajtach) wskazywany przez pblobdata. pblobdata - Wskaźnik do bloku danych. Implementacja struktury BLOB: typedef struct _BLOB ULONG BYTE* BLOB; cbsize; pblobdata; 12

13 Nazwa struktury : hostent Opis : Atrybuty : Specyfikacja struktury hostent Struktura jest używana przez funkcje do przechowywania informacji o hoście. Zadeklarowana w pliku Winsock2.h h_name h_aliases - h_addrtype - Typ adresu. h_length - Nazwa hosta. Jeżeli jest używany system DNS (lub podobny) zmienna zawiera pełną nazwę DNS ową hosta FQDN (ang. Fully Qualified Domain Name). W pliku hosts, wartość zmiennej jest drugim wpisem po adresie IP. Zerem zakończona tablica alternatywnych nazw hosta. Długość w bajtach każdego adresu. h_addr_list - Zerem zakończona lista adresów IP hosta. Adresy IP są zwracane w sieciowym uporządkowaniu bajtów (Big Endian). Makro h_addr zastępuje h_addr_list[0] w celu zgodności ze starszymi wersjami oprogramowania. Przykład: Implementacja struktury hostent: typedef struct hostent char FAR* char FAR FAR** short short char FAR FAR** hostent; char *ServerName; LPHOSTENT hp; SOCKADDR_IN AdresSerwera; hp = gethostbyname(servername); AdresSerwera.sin_addr.s_addr = hp->h_addr; h_name; h_aliases; h_addrtype; h_length; h_addr_list; 13

14 Nazwa struktury: sockaddr_in Specyfikacja struktury sockaddr_in Opis : Zawiera adres IP i numer portu odbiorcy danych. Struktura zadeklarowana w pliku Winsock2.h (dla IPv4), ws2tcpip.h (dla IPv6). Atrybuty : short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8]; sin_family sin_port sin_addr sin_zero Kod rodziny adresów TCP//IP (wartość musi być AF_INET). Numer portu (IP port). Adres IP karty. Jeśli w polu jest wartość INADDR_ANY, to nasłuchiwanmnie będzie prowadzone na wszystkich adresach, jakie posiada dany host. Pole służy do uzupełniania tak, aby wielkość struktury była taka sama jak SOCKADDR. Implementacja struktury sockaddr_in: struct sockaddr_in short unsigned short struct in_addr char ; sin_family; sin_port; sin_addr; sin_zero[8]; Przykład: char *ServerName; LPHOSTENT hp; SOCKADDR_IN AdresSerwera; hp = gethostbyname(servername); AdresSerwera.sin_addr.s_addr = hp->h_addr; 14

15 Specyfikacja struktury in_addr Nazwa struktury : in_addr Opis: Struktura in_addr adres IP hosta. Struktura zdefiniowana w WINSOCK.H Atrybuty : S_un_b - adres hosta w formacie u_chars. S_un_w - adres hosta w formacie dwóch u_shorts. S_addr - adres hosta w formacie u_long. Implementacja struktury in_addr: struct in_addr union struct unsigned char s_b1, s_b2, s_b3, s_b4; S_un_b; struct unsigned short s_w1, s_w2; S_un_w; unsigned long S_addr; S_un; ; 15

16 Specyfikacja funkcji FixList() Nazwa funkcji : FixList() Zwracana wartość: void Argumenty : PCHAR **, PCHAR Opis : Funkcja FixList() pobiera tablicę znaków zwróconą przez funkcję WSALookupServiceNext() modyfikuje je poprzez dodanie znaku. Implementacja funkcji FixList(): void FixList(PCHAR ** List, PCHAR Base) if (*List) PCHAR * Addr; Addr = *List = (PCHAR *)( ((DWORD)*List + Base) ); while(*addr) *Addr = (PCHAR)(((DWORD)*Addr + Base)); Addr++; 16

17 Specyfikacja funkcji UnpackHostEnt() Nazwa funkcji : UnpackHostEnt() Zwracana wartość: void Argumenty : struct hostent * Opis : Funkcja UnpackHostEnt() dokleja do atrybutu h_name struktury hostent znak pch = (PCHAR)hostent, jeżeli wartość atrybutu h_name jest zero wywołuje funkcję FixList() (funkcja dołącza do atrybutu h_aliases, h_addr_list struktury hostent znak pch = (PCHAR)hostent. Implementacja funkcji UnpackHostEnt(): void UnpackHostEnt(struct hostent * hostent) PCHAR pch; pch = (PCHAR)hostent; if(hostent->h_name) hostent->h_name = (PCHAR)((DWORD)hostent->h_name + pch); FixList(&hostent->h_aliases, pch); FixList(&hostent->h_addr_list, pch); 17

18 Specyfikacja funkcji WSALookupServiceBegin() Nazwa funkcji : WSALookupServiceBegin() Zwracana wartość: INT Argumenty : lpqsrestrictions - [in] Wskaźnik od zmiennej zwierającej parametry wyszukiwania. dwcontrolflags - [in] Flaga służąca do kontroli głębokości wyszukiwania: LUP_DEEP, LUP_CONTAINERS, LUP_NOCONTAINERS, LUP_FLUSHCACHE, LUP_FLUSHPREVIOUS, LUP_NEAREST, LUP_RES_SERVICE, LUP_RETURN_ALIASES,LUP_RETURN_NAME, LUP_RETURN_TYPE, LUP_RETURN_VERSION, LUP_RETURN_COMMENT, LUP_RETURN_ADDR, LUP_RETURN_BLOB, LUP_RETURN_ALL lphlookup - [out] Uchwyt do wywoływanej funkcji WSALookupServiceNext() w celu rozpoczęcia uzyskiwania parametrów. Opis : Funkcja WSALookupServiceBegin() służy do inicjowania zapytań klienta o informacje dotyczące graniczeń zapytań zawartych w strukturze WSAQUERYSET. Funkcja WSALookupServiceBegin() tylko zwraca uchwyt który powinien być użyty przez kolejne zapytania funkcją WSALookupServiceNext(). Nagłówek zadeklarowany w pliku Winsock2.h. Implementacja w pliku Use Ws2_32.lib. 18

19 Specyfikacja funkcji WSALookupServiceNext() Nazwa funkcji : WSALookupServiceNext() Zwracana wartość: INT Funkcja zawraca zero gdy operacja zakończyła się sukcesem, jeśli nie to funkcja zwraca wartość SOCKET_ERROR Argumenty : hlookup - [in] Uchwyt zwrócony przez funkcje WSALookupServiceBegin(). dwcontrolflags - [in] Flaga służąca do kontroli zapytania. Currently only LUP_FLUSHPREVIOUS is defined as a means to cope with a result set which is too large. If an application does not (or cannot) supply a large enough buffer, setting LUP_FLUSHPREVIOUS instructs the provider to discard the last result set which was too large and move on to the next set for this call. lpdwbufferlength - [in, out] Na wejściu, wskaźnik do zmiennej zawierającej liczbę bajtów w buforze (wskazywanym przez lpqsresults. Na wyjściu, gdy funkcja nie zwróci kodu błędu WSAEFAULT, wskaźnik wskazuje na minimalną liczbę bajtów jaką powinien zawierać bufor aby odebrać dane. lpqsresults - [out] Wskaźnik do pamięci który zawiera strukturę WSAQUERYSET Opis : Funkcja WSALookupServiceNext() jest wywoływana po uzyskaniu uchwytu od funkcji WSALookupServiceBegin() w celu uzyskania informacji o usłudze. Service provider zwraca dane w strukturze WSAQUERYSET do bufora wskazywanego przez lpqsresults. Klient wywołuje tą funkcję tak długo aż funkcja nie zwróci WSA_E_NO_MORE (co oznacza, że wszystkie dane WSAQUERYSET zostały zwrócone). 19

20 Specyfikacja funkcji WSALookupServiceEnd() Nazwa funkcji : WSALookupServiceEnd() Zwracana wartość: INT Funkcja zawraca zero gdy operacja zakończyła się sukcesem, jeśli nie to funkcja zwraca wartość SOCKET_ERROR Argumenty : hlookup - [in] Uchwyt uzyskany przez wywołanie funkcji WSALookupServiceBegin(). Opis : Funkcja WSALookupServiceEnd() służy od zwalniania uchwytu utworzonego przez funkcję WSALookupServiceBegin(). Wywołanie funkcji WSALookupServiceEnd() z innego wątku, gdy wątek funkcji WSALookupServiceNext() jest zablokowany, kasuje zapytanie i powoduje, że funkcja WSALookupServiceNext() natychmiast zwraca zapytanie. 20

21 Specyfikacja projektu Nazwa projektu: dnsquery Typ projektu: Win32 console application Lista plików: dnsquery.cpp Metoda kompilacji: Microsoft Visual C Utworzyć projekt typu 'Win32 console application w menu (-)File-> New -> Project-> Other languages-> Visual C++ -> win32 -> Win32 console application -> wpisać nazwę: dnsquery -> przycisk (OK) -> Okno Win32 application wizard dnsquery-> wybrać: Application settings -> wybrać: Empty project-> Przycisk (Finish). Konfiguracja projektu: (-)Project-> nazwa_projektu Properies... -> Configuration Properies-> Linker-> Input -> Additional Dependecies, wpisać: WS2_32.Lib. W pliku dnsquery.vcproj, atrybutowi CharacterSet tagu Configuration przypisać wartość 2, tzn. <Configuration CharacterSet="2 > Funkcjonalność: (Run-> cmd) wpisać: \> dnsquery nazwa_hosta 21

22 Specyfikacja projektu Pliki nagłówkowe: winsock2.h, SvcGuid.h (VCID_INET_HOSTADDRBYNAME), iostream Funkcje programu: WSAStartup(), WSAGetLastError(), WSALookupServiceBegin(), WSALookupServiceNext(), WSALookupServiceEnd(), WSACleanup(), FixList(), UnpackHostEnt() Struktury programu: WSADATA, GUID, AFPROTOCOLS, WSAQUERYSET, BLOB, HOSTENT, SOCKADDR_IN Zmienne programu: WSADATA WSAQUERYSET char wsd; *qs=null; buff[rnr_buffer_size]; // specjalna wartość struktury GUID: SVCID_INET_HOSTADDRBYNAME dla rozwiązania nazwy hosta GUID HostnameGuid = SVCID_INET_HOSTADDRBYNAME; HANDLE hrnr; AFPROTOCOLS afproto[2] = AF_INET, IPPROTO_UDP, AF_INET, IPPROTO_TCP ; DWORD dwlength = RNR_BUFFER_SIZE; int ret; LPBLOB pvret = NULL; HOSTENT *hp = NULL; SOCKADDR_IN addr; 22

23 Struktura programu (struktura funkcji main()) 1.Sprawdzenie listy argumentów. 2. Sprawdzenie wersji Winsock. WSAStartup(MAKEWORD(2,2), &wsd)!= 0? 3. Inicjowanie struktury WSAQUERYSET. qs = (WSAQUERYSET *)buff; // qs wskaźnik do struktury WSAQUERYSET qs->dwsize = sizeof(wsaqueryset); qs->lpszserviceinstancename = argv[1]; qs->lpserviceclassid = &HostnameGuid; qs->dwnamespace = NS_ALL; qs->dwnumberofprotocols = 2; // TCP i UDP qs->lpafpprotocols = afproto; 4. Początek sesji zapytań klienta do serwera DNS. Dane do inicjowania sesji pochodzą ze struktury WSAQUERYSET. Utworzenie uchwytu do sesji, który następnie będzie wykorzystywany do zapytań przez funkcję WSALookupServiceNext(). ret = WSALookupServiceBegin(qs, LUP_RETURN_BLOB LUP_RETURN_NAME, &hrnr); 23

24 Struktura funkcji main() 5. Sprawdzenie czy funkcja WSALookupServiceBegin() nie zwróciła błędu. Czy ret == NO_ERROR? 6. Wywołanie funkcji WSALookupServiceNext(), sprawdzenie czy funkcja nie zwróciła błędu. ret = WSALookupServiceNext(hRnr, 0, &dwlength, qs); Czy ret!= NO_ERROR? 7. Jeżeli funkcja WSALookupServiceNext() zwróciła błąd sprawdzenie numeru błędu i zakończenie sesji Czy WSAGetLastError() == WSASERVICE_NOT_FOUND? WSALookupServiceEnd(hRnr); 8. Sprawdzenie czy serwer DNS zwrócił dane do struktury BLOB. Czy qs->lpblob == NULL? 9. Utworzenie bufora na dane. hp = new HOSTENT [qs->lpblob->cbsize]; lub hp = (HOSTENT *)LocalAlloc(LPTR, qs->lpblob->cbsize); 10. Rozwinięcie listy hostów. UnpackHostEnt(hp); 24

25 Struktura funkcji main() 11. Przekierowanie adresów na ekran. for(register int i=0; hp->h_addr_list[i] ;i++) memcpy(&addr.sin_addr, hp->h_addr_list[i], hp->h_length); cout << argv[1] << " IP: " << inet_ntoa(addr.sin_addr) << endl; for(i=0; hp->h_aliases[i] ;i++) cout << "Alias: " << hp->h_aliases[i] << endl; 12. Zwolnienie pamięci i zamknięcie sesji. delete [] hp; // lub LocalFree(hp); WSACleanup(); 25

26 // dnsquery.cpp #include <winsock2.h> #include <SvcGuid.h> #include <iostream> using namespace std; // VCID_INET_HOSTADDRBYNAME #define RNR_BUFFER_SIZE (sizeof(wsaqueryset) + sizeof(struct hostent) ) void FixList(PCHAR ** List, PCHAR Base) if (*List) PCHAR * Addr; Addr = *List = (PCHAR *)( ((DWORD)*List + Base) ); while(*addr) *Addr = (PCHAR)(((DWORD)*Addr + Base)); Addr++; //koniec FixList() void UnpackHostEnt(struct hostent * hostent) PCHAR pch; pch = (PCHAR)hostent; if(hostent->h_name) hostent->h_name = (PCHAR)((DWORD)hostent->h_name + pch); FixList(&hostent->h_aliases, pch); FixList(&hostent->h_addr_list, pch); //koniec UnpackHostEnt() 26

27 int main(int argc, char *argv[]) WSADATA wsd; WSAQUERYSET *qs = NULL; char buff[rnr_buffer_size]; GUID HostnameGuid = SVCID_INET_HOSTADDRBYNAME; HANDLE hrnr; AFPROTOCOLS afproto[2] = AF_INET, IPPROTO_UDP, AF_INET, IPPROTO_TCP ; DWORD dwlength = RNR_BUFFER_SIZE; int ret, i; LPBLOB pvret = NULL; HOSTENT *hp = NULL; SOCKADDR_IN addr; if (argc!= 2) cout << "wpisz: " << argv[0] << " nazwa_hosta " << endl; return -1; if (WSAStartup(MAKEWORD(2,2), &wsd)!= 0) cerr << "WSAStartup() error no: " << WSAGetLastError() << endl; return -1; 27

28 //qs = (WSAQUERYSET *)&buff; qs = (WSAQUERYSET *)buff; memset(qs, 0, sizeof(*qs)); // w pliku dnsquery.vcproj, atrybutowi CharacterSet w tagu Configuration przypisac // wartosc 2, tzn. <Configurations> <Configuration CharacterSet="2 > /////////////////////////////////////////////////////// qs->dwsize = sizeof(wsaqueryset); qs->lpszserviceinstancename = argv[1]; qs->lpserviceclassid = &HostnameGuid; qs->dwnamespace = NS_ALL; qs->dwnumberofprotocols = 2; // TCP & UDP qs->lpafpprotocols = afproto; ret = WSALookupServiceBegin(qs, LUP_RETURN_BLOB LUP_RETURN_NAME, &hrnr); if (ret == NO_ERROR) ret = WSALookupServiceNext(hRnr, 0, &dwlength, qs); if (ret!= NO_ERROR) if (WSAGetLastError() == WSASERVICE_NOT_FOUND) cerr <<"No such name found!" << endl; WSALookupServiceEnd(hRnr); return 0; cerr << "WSALookupServiceNext() error no: " << WSAGetLastError() << endl; WSALookupServiceEnd(hRnr); 28

29 if (qs->lpblob == NULL) return -1; hp = new HOSTENT [qs->lpblob->cbsize]; if (!hp) cerr << "hp on heap failed" << endl; return -1; //void * memcpy ( void * destination, const void * source, size_t num ); memcpy(hp, qs->lpblob->pblobdata, qs->lpblob->cbsize); UnpackHostEnt(hp); for(i=0; hp->h_addr_list[i] ;i++) memcpy(&addr.sin_addr, hp->h_addr_list[i], hp->h_length); cout << argv[1] << " IP: " << inet_ntoa(addr.sin_addr) << endl; for(i=0; hp->h_aliases[i] ;i++) cout << "Alias: " << hp->h_aliases[i] << endl; delete [] hp; WSACleanup(); return 0; //koniec main() 29

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Rodzina protokołów TCP/IP. Aplikacja: ipconfig. Rodzina protokołów TCP/IP. Aplikacja: ipconfig. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Specyfikacja struktury FIXED_INFO Nazwa struktury:

Bardziej szczegółowo

Statystyka protokołów i połączeń sieciowych.

Statystyka protokołów i połączeń sieciowych. Statystyka protokołów i połączeń sieciowych. Aplikacja netstat. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Statystyka połączeń sieciowych.

Bardziej szczegółowo

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen);

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen); 3.1. Określanie adresu połączonego hosta 3. #include int getpeername(int socket, struct sockaddr *addr, int *addrlen); Funkcja getpeername dostarcza adresu drugiej strony połączenia. Parametry:

Bardziej szczegółowo

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project Aplikacja Sieciowa Jedną z fundamentalnych właściwości wielu aplikacji jest możliwość operowania pomiędzy jednostkami (np. PC), które włączone są do sieci. W Windows operacja ta jest możliwa przy wykorzystaniu

Bardziej szczegółowo

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

Protokół ARP. dr Zbigniew Lipiński. Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Protokół ARP Aplikacja printarp dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Address Resolution Protocol ARP, (ang.) Address Resolution

Bardziej szczegółowo

Narzędzia do diagnozowania sieci w systemie Windows

Narzędzia do diagnozowania sieci w systemie Windows Narzędzia do diagnozowania sieci w systemie Windows Polecenie ping Polecenie wysyła komunikaty ICMP Echo Request w celu weryfikacji poprawności konfiguracji protokołu TCP/IP oraz dostępności odległego

Bardziej szczegółowo

Sieci komputerowe. Zajęcia 5 Domain Name System (DNS)

Sieci komputerowe. Zajęcia 5 Domain Name System (DNS) Sieci komputerowe Zajęcia 5 Domain Name System (DNS) DNS - wstęp System nazw domenowych to rozproszona baza danych Zapewnia odwzorowanie nazwy na adres IP i odwrotnie DNS jest oparty o model klient-serwer.

Bardziej szczegółowo

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Celem ćwiczenia jest zdobycie umiejętności programowania komunikacji unicastowej za pomocą protokołu IPv6

Bardziej szczegółowo

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości.

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości. Sieci owe Sieci owe Plan wykładu Domain Name System System Nazw Domen Definicja DNS Hierarchiczna budowa nazw Obszary i ich obsługa Zapytania Właściwości Sieci owe Sieci owe Definicja DNS DNS to rozproszona

Bardziej szczegółowo

Plan wykładu. Domain Name System. Definicja DNS. Po co nazwy? Przestrzeń nazw domen Strefy i ich obsługa Zapytania Właściwości.

Plan wykładu. Domain Name System. Definicja DNS. Po co nazwy? Przestrzeń nazw domen Strefy i ich obsługa Zapytania Właściwości. Sieci komputerowe 1 Sieci komputerowe 2 Plan wykładu Domain Name System System Nazw Domen Definicja DNS Wymagania Przestrzeń nazw domen Strefy i ich obsługa Zapytania Właściwości Sieci komputerowe 3 Sieci

Bardziej szczegółowo

Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo

Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo Interfejs programowy Windows Sockets 2. Aplikacja klient-serwer TCP Echo Zagadnienia Omówienie biblioteki Winsock. Specyfikacja klienta tcpecho. Specyfikacja serwera tcpecho. dr Zbigniew Lipiński Instytut

Bardziej szczegółowo

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 Gniazda BSD Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 socket() Użycie gniazd w transmisji połączeniowej bind() listen() socket() accept()

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe dr Tomasz Tyrakowski Dyż ury: wtorki 12:00 13:00 czwartki 14:00 15:00 pokój B4-5 e-mail: ttomek@amu.edu.pl materiały: http://www.amu.edu.pl/~ttomek 1 Wymagania podstawowa znajomość

Bardziej szczegółowo

Internet Control Message Protocol Aplikacja ping

Internet Control Message Protocol Aplikacja ping Internet Control Message Protocol Aplikacja ping Zagadnienia: Protokół ICMP. Specyfikacja projektu ping. Specyfikacja struktur i funkcji programu. Struktura programu. dr Zbigniew Lipiński Instytut Matematyki

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Domain Name System. Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

Domain Name System. Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ Domain Name System Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ Plan ćwiczeń Wprowadzenie, jak to wygląda, typy serwerów, zapytania, iteracyjne, rekurencyjne, pliki strefowe

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Usługa DNS laboratorium: 03 Kraków, 2014 03. Programowanie Usług Sieciowych

Bardziej szczegółowo

Programowanie Sieciowe 1

Programowanie Sieciowe 1 Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Klient UDP Kolejność wykonywania funkcji gniazdowych klienta UDP Protokół UDP jest bezpołączeniowy:

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq) Program my_ping: wysłanie komunikatu ICMP z żądaniem echa Struktura icmp (plik netinet/ip_icmp.h) 0 7 8 15 16 31 TYP (icmp_type) KOD (icmp_code) IDENTYFIKATOR (icmp_id) SUMA KONTROLNA (icmp_cksum) NUMER

Bardziej szczegółowo

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail. A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail. A. Kisiel,Protokoły DNS, SSH, HTTP, e-mail N, Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, e-mail 1 Domain Name Service Usługa Domain Name Service (DNS) Protokół UDP (port 53), klient-serwer Sformalizowana w postaci protokołu DNS Odpowiada

Bardziej szczegółowo

ODWZOROWYWANIE NAZW NA ADRESY:

ODWZOROWYWANIE NAZW NA ADRESY: W PROTOKOLE INTERNET ZDEFINIOWANO: nazwy określające czego szukamy, adresy wskazujące, gdzie to jest, trasy (ang. route) jak to osiągnąć. Każdy interfejs sieciowy w sieci TCP/IP jest identyfikowany przez

Bardziej szczegółowo

Sieci komputerowe lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl

Sieci komputerowe lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl Poniższe ćwiczenie ma na celu zapoznanie z podstawowymi narzędziami służącymi do kontroli, diagnostyki i zarządzania siecią w systemie MS Windows 2000. Opis i przykłady narzędzi znajdują się poniżej. Należy

Bardziej szczegółowo

ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ DHCP

ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ DHCP ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl DHCP 1 Wykład Dynamiczna konfiguracja

Bardziej szczegółowo

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Topologia Cele Część 1: Zapisanie informacji dotyczących konfiguracji IP komputerów Część 2: Użycie programu Wireshark do przechwycenia

Bardziej szczegółowo

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak Wykład 3 / Wykład 4 Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak 1 Wprowadzenie do Modułu 3 CCNA-E Funkcje trzech wyższych warstw modelu OSI W jaki sposób ludzie wykorzystują

Bardziej szczegółowo

Sun RPC/XDR. Dariusz Wawrzyniak 1

Sun RPC/XDR. Dariusz Wawrzyniak 1 Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP

Bardziej szczegółowo

Instrukcja 6 - ARP i DNS - translacja adresów

Instrukcja 6 - ARP i DNS - translacja adresów Instrukcja 6 - ARP i DNS - translacja adresów 6.1 Cel ćwiczenia Celem ćwiczenia jest zaznajomienie rolą jakie pełnią protokoły ARP i DSN. 6.2 Wstęp W sieciach komputerowych wykorzystujących stos protokołów

Bardziej szczegółowo

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using

Bardziej szczegółowo

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS OBSŁUGA I KONFIGURACJA SIECI W WINDOWS Jak skonfigurować komputer pracujący pod kontrolą systemu operacyjnego Windows 7, tak aby uzyskać dostęp do internetu? Zakładamy, że komputer pracuje w małej domowej

Bardziej szczegółowo

Ćwiczenie nr: 5 Temat: DNS

Ćwiczenie nr: 5 Temat: DNS Ćwiczenie nr: 5 Temat: DNS 1. Model systemu Nazwa domeny jest ścieżką w odwróconym drzewie nazywanym przestrzenią nazw domeny. Drzewo ma pojedynczy węzeł na szczycie. Drzewo DNS może mieć dowolną liczbę

Bardziej szczegółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi DNS, WINS, DHCP

Jarosław Kuchta Administrowanie Systemami Komputerowymi DNS, WINS, DHCP Jarosław Kuchta DNS, WINS, DHCP DNS Wprowadzenie DNS tłumaczenie nazw przyjaznych na adresy IP Pliki HOSTS, LMHOSTS Hierarchiczna przestrzeń nazw Domeny: funkcjonalne:.com,.org krajowe:.pl regionalne:

Bardziej szczegółowo

Sun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1

Sun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1 Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP

Bardziej szczegółowo

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:

Bardziej szczegółowo

Znajdywanie hostów w sieci

Znajdywanie hostów w sieci Znajdywanie hostów w sieci Podstawy ADRES IP ALIAS Po co nam nazwy Korzyści z definiowania nazw: Nazwy są łatwiejsze do zapamiętania Stabilność w przypadku dynamicznych zmian adresów IP (środowiska mobilne,

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

Sieci komputerowe Warstwa aplikacji

Sieci komputerowe Warstwa aplikacji Sieci komputerowe Warstwa aplikacji 2012-05-24 Sieci komputerowe Warstwa aplikacji dr inż. Maciej Piechowiak 1 Wprowadzenie warstwa zapewniająca interfejs pomiędzy aplikacjami używanymi do komunikacji,

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Ćwiczenie nr: 10 DNS. 1.Model systemu. 2.Typy serwerów DNS

Ćwiczenie nr: 10 DNS. 1.Model systemu. 2.Typy serwerów DNS Ćwiczenie nr: 10 DNS 1.Model systemu Nazwa domeny jest ścieżką w odwróconym drzewie nazywanym przestrzenią nazw domeny. Drzewo ma pojedynczy węzeł na szczycie. Drzewo DNS może mieć dowolną liczbę rozgałęzień

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Dariusz Wawrzyniak (IIPP) 1 trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej

Bardziej szczegółowo

Iteracyjny serwer TCP i aplikacja UDP

Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP Funkcje wywoływane przez serwer TCP socket() - bind() - listen() - accept() - read() / write() - close() socket() Creates an endpoint for communication

Bardziej szczegółowo

Interfejs programowy WinInet, WinHttp

Interfejs programowy WinInet, WinHttp Interfejs programowy WinInet, WinHttp Aplikacja httpget dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Protokół HTTP HTTP, ang. Hypertext

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Katedra Inżynierii Komputerowej Politechnika Częstochowska. ARP i DNS translacja adresów Laboratorium Podstaw sieci komputerowych

Katedra Inżynierii Komputerowej Politechnika Częstochowska. ARP i DNS translacja adresów Laboratorium Podstaw sieci komputerowych Katedra Inżynierii Komputerowej Politechnika Częstochowska ARP i DNS translacja adresów Laboratorium Podstaw sieci komputerowych Cel ćwiczenia ARP i DNS translacja adresów Celem dwiczenia jest zaznajomienie

Bardziej szczegółowo

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

Bardziej szczegółowo

Serwer nazw DNS. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Serwer nazw DNS. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski komputerowa Serwer nazw DNS Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski komputerowa () Serwer nazw DNS 1 / 18 Nazwy symboliczne a adresy IP Większości ludzi łatwiej zapamiętać jest nazwę

Bardziej szczegółowo

Sieci Komputerowe. Protokół Domain Name System Usługa DNS. dr Zbigniew Lipiński

Sieci Komputerowe. Protokół Domain Name System Usługa DNS. dr Zbigniew Lipiński Sieci Komputerowe Protokół Domain Name System Usługa DNS dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Specyfikacje Protokołu DNS DNS, (ang.)

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ INTERNET PROTOCOL (IP) INTERNET CONTROL MESSAGE PROTOCOL (ICMP) WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r. PLAN IPv4: schemat nagłówka ICMP: informacje

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2014/2015 Michał Cieśla pok. D-2-47, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/

Bardziej szczegółowo

Sieciowa komunikacja procesów - XDR i RPC

Sieciowa komunikacja procesów - XDR i RPC *** abc.x Przyklad pliku RPCGEN Obliczanie sumy, roznicy i iloczynu dwoch liczb calkowitych *** ************************************ Wywolanie procedury odleglej dopuszcza tylko jeden argument wywolania

Bardziej szczegółowo

DKonfigurowanie serwera DNS

DKonfigurowanie serwera DNS DKonfigurowanie serwera DNS 1 Wprowadzenie Wymagania wstępne: znajomość podstaw adresacji IP i systemu Linux. Adres IP nie jest jedynym typem adresu komputera w sieci Internet. Komputer można bowiem adresować

Bardziej szczegółowo

System DNS. Maciej Szmigiero <mhej@o2.pl>

System DNS. Maciej Szmigiero <mhej@o2.pl> System DNS Maciej Szmigiero DNS - Podstawowe informacje Służy do tłumaczenia nazw domen (takich jak na przykład www.wp.pl ) na adresy IP i odwrotnie, Silnie hierarchiczny, Dodatkowo wykorzystywany

Bardziej szczegółowo

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS Laboratorium - Obserwacja procesu tłumaczenia nazw DNS Cele Część 1: Obserwacja konwersji DNS nazwy URL na adres IP. Część 2: Obserwacja procesu przeszukiwania nazw DNS, przy pomocy polecenia Nslookup

Bardziej szczegółowo

Krótkie wprowadzenie do korzystania z OpenSSL

Krótkie wprowadzenie do korzystania z OpenSSL Krótkie wprowadzenie do korzystania z OpenSSL Literatura: http://www.openssl.org E. Rescola, "An introduction to OpenSSL Programming (PartI)" (http://www.linuxjournal.com/article/4822) "An introduction

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Sieciowe systemy operacyjne

Sieciowe systemy operacyjne Sieciowe systemy operacyjne Zarządzanie serwerami sieciowymi, cz. 1 Hubert Kołodziejski i Rafał Wojciechowski Zadania serwera w sieci lokalnej Zapewnienie połączenia z innymi sieciami(małe sieci) Zarządzanie

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

TCP - receive buffer (queue), send buffer (queue)

TCP - receive buffer (queue), send buffer (queue) BSD sockets c.d. TCP - receive buffer (queue), send buffer (queue) Z każdym gniazdem sieciowym są skojarzone: Bufor do odbierania danych (ang. receive buffer) Przychodzące dane są umieszczane w buforze

Bardziej szczegółowo

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6 Wykład 6 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 6 p.

Bardziej szczegółowo

Programowanie sieciowe

Programowanie sieciowe Programowanie sieciowe email: dawid@us.edu.pl Programowanie warstwy transportu. - Berkeley sockets. - koncepcja gniazda - bibliteka sockets (connect(),socket(),bind(),listen(),accept(),read(),write() )

Bardziej szczegółowo

pasja-informatyki.pl

pasja-informatyki.pl DNS - wprowadzenie 2017 pasja-informatyki.pl Sieci komputerowe Windows Server #5 DNS & IIS Damian Stelmach DNS - wprowadzenie 2018 Spis treści DNS - wprowadzenie... 3 DNS na komputerze lokalnym... 5 DNS

Bardziej szczegółowo

Problemy techniczne SQL Server

Problemy techniczne SQL Server Problemy techniczne SQL Server Co zrobić, jeśli program Optivum nie łączy się poprzez sieć lokalną z serwerem SQL? Programy Optivum, które korzystają z bazy danych umieszczonej na serwerze SQL, mogą być

Bardziej szczegółowo

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2 Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2 Procedura konfiguracji serwera DNS w systemie Windows Server 2008/2008 R2, w sytuacji gdy serwer fizyczny nie jest kontrolerem domeny Active

Bardziej szczegółowo

Sieci komputerowe. Domain Name System. WIMiIP, AGH w Krakowie. dr inż. Andrzej Opaliński. www.agh.edu.pl

Sieci komputerowe. Domain Name System. WIMiIP, AGH w Krakowie. dr inż. Andrzej Opaliński. www.agh.edu.pl Sieci komputerowe Domain Name System WIMiIP, AGH w Krakowie dr inż. Andrzej Opaliński Wprowadzenie DNS Domain Name Sysytem system nazw domenowych Protokół komunikacyjny Usługa Główne zadanie: Tłumaczenie

Bardziej szczegółowo

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

Zadanie1: Wykorzystując serwis internetowy Wikipedia odszukaj informacje na temat serwera DNS.

Zadanie1: Wykorzystując serwis internetowy Wikipedia odszukaj informacje na temat serwera DNS. T: Serwer DNS. Zadanie1: Wykorzystując serwis internetowy Wikipedia odszukaj informacje na temat serwera DNS. Zadanie2: W jaki sposób skonfigurować system Windows XP by pełnił rolę serwera DNS? Domeny

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 1.

Programowanie 2. Język C++. Wykład 1. 1.1 Wstęp... 1 1.2 Obiekty stałe... 3 1.3 Obiekty statyczne... 4 1.4 Wskaźniki... 5 1.5 Referencje... 8 1.6 Wskaźniki do wskaźników... 11 1.7 Definiowanie własnych typów danych, polecenie typedef... 17

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Obsługa wyjątków. Język C++ WW12

Obsługa wyjątków. Język C++ WW12 Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try

Bardziej szczegółowo

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko TCP/IP Warstwa aplikacji mgr inż. Krzysztof Szałajko Modele odniesienia 7 Aplikacji 6 Prezentacji 5 Sesji 4 Transportowa 3 Sieciowa 2 Łącza danych 1 Fizyczna Aplikacji Transportowa Internetowa Dostępu

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach Ćwiczenia laboratoryjne Oprogramowanie i badanie prostych metod sortowania w tablicach Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość

Bardziej szczegółowo

Za dużo wpisów! Serwer nazw DNS. Marcin Bieńkowski

Za dużo wpisów! Serwer nazw DNS. Marcin Bieńkowski Nazwy symoliczne a adresy IP komputerowa Serwer nazw DNS Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Większości ludzi łatwiej zapamiętać jest nazwę symoliczna (www.ii.uni.wroc.pl), niż

Bardziej szczegółowo

Architektura typu klient serwer: uproszczony klient POP3

Architektura typu klient serwer: uproszczony klient POP3 Architektura typu klient serwer: uproszczony klient POP3 Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej dr inż. Łukasz Szustak Składniki systemu poczty e-mail

Bardziej szczegółowo

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2 onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2 Poniższa procedura omawia konfigurację serwera DNS w systemie Windows Server 2008 / 2008 R2, w sytuacji gdy serwer fizyczny nie jest kontrolerem

Bardziej szczegółowo

T: Instalacja i konfiguracja serwera DNS.

T: Instalacja i konfiguracja serwera DNS. T: Instalacja i konfiguracja serwera DNS. Podczas wykonywania poniższych zadań w zeszycie w sprawozdaniu 1. podaj i wyjaśnij polecenia, które użyjesz, aby: wyjaśnić pojęcia związane z dns, zainstalować

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok

Bardziej szczegółowo

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad.

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A i sieci komputerowe Szymon Wilk Adresowanie w sieciach 1 1. Klasy adresów IP a) klasa A sieć host 0 mało sieci (1 oktet), dużo hostów (3 oktety) pierwszy bit równy 0 zakres adresów dla komputerów 1.0.0.0-127.255.255.255

Bardziej szczegółowo

Signals + Threads: Qt vs. Boost

Signals + Threads: Qt vs. Boost Signals + Threads: Qt vs. Boost Adam Bujalski 2014-04-01 Adam Bujalski Signals + Threads: Qt vs. Boost 2014-04-01 1 / 22 Spis Treści 1 2 Wątki 3 Qt::QueuedConnection w boost Adam Bujalski Signals + Threads:

Bardziej szczegółowo

Informatyka I : Tworzenie projektu

Informatyka I : Tworzenie projektu Tworzenie nowego projektu w programie Microsoft Visual Studio 2013 Instrukcja opisuje w jaki sposób stworzyć projekt wykorzystujący bibliotekę winbgi2 w programie Microsoft Visual Studio 2013. 1. Otwórz

Bardziej szczegółowo

Windows Serwer 2008 R2. Moduł 3. DNS v.2

Windows Serwer 2008 R2. Moduł 3. DNS v.2 Windows Serwer 2008 R2 Moduł 3. DNS v.2 ROZPOZNAWANIE NAZW W SYSTEMIE WINDOWS SERVER 2008 2 Rozpoznawanie nazw Sieci oparte na systemie Windows Server 2008 zawierają przynajmniej trzy systemy rozpoznawania

Bardziej szczegółowo

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4 Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Obsługa sieci Wykład

Bardziej szczegółowo

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 26 DNS Sieci komputerowe (II UWr) Wykład

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Gniazda BSD implementacja w C#

Gniazda BSD implementacja w C# BSD implementacja w C# Implementacja w C#: Przestrzeń nazw: System.Net.Sockets Klasa: public class Socket : IDisposable Implementacja w C#: Konstruktor: public Socket( AddressFamily addressfamily, SocketType

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Akademia Techniczno-Humanistyczna w Bielsku-Białej Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 3 Temat ćwiczenia: Narzędzia sieciowe w systemie Windows 1. Wstęp

Bardziej szczegółowo

Pobieranie argumentów wiersza polecenia

Pobieranie argumentów wiersza polecenia Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:

Bardziej szczegółowo