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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ć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

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

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

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

Ć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

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

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

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

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

System DNS. Maciej Szmigiero

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

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

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

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

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

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

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

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

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

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

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

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

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

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

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

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

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

Ć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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

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

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x?

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x? Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x? Przykład autoryzacji 802.1x dokonano w oparciu serwer Microsoft Windows 2003 i

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

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

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla Sieci komputerowe Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008 Michał Cieśla pok. 440a, email: ciesla@if.uj.edu.pl konsultacje: wtorki 10-12 http://users.uj.edu.pl/~ciesla/

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat 8.9. Wykrywanie i usuwanie awarii w sieciach komputerowych. 1. Narzędzia

Bardziej szczegółowo

Migracja bazy danych Microsoft Access *.mdb do Microsoft SQL 2008 Server R2 SP1 dla oprogramowania Płatnik

Migracja bazy danych Microsoft Access *.mdb do Microsoft SQL 2008 Server R2 SP1 dla oprogramowania Płatnik Migracja bazy danych Microsoft Access *.mdb do Microsoft SQL 2008 Server R2 SP1 dla oprogramowania Płatnik by Gecco-IT http://www.gecco-it.waw.pl info@gecco-it.waw.pl 1. Zanim przystąpimy do migracji należy

Bardziej szczegółowo

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

Bardziej szczegółowo

Rejestracja i odwzorowanie nazw

Rejestracja i odwzorowanie nazw Rozdzia³ 10 Rejestracja i odwzorowanie nazw W tym rozdziale omawiamy niezale ny od protoko³u model rejestracji i odwzorowania nazw, wprowadzony po raz pierwszy w bibliotece Winsock 2. Metoda znana z Winsock

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Krótka instrukcja instalacji

Krótka instrukcja instalacji Krótka instrukcja instalacji Spis treści Krok 1 Pobieranie plików instalacyjnych Krok 2 Ekran powitalny Krok 3 Umowa licencyjna Krok 4 Wybór miejsca instalacji Krok 5 Informacje rejestracyjne Krok 6 Rozpoczęcie

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Konfiguracja usługi WINS i DNS

Konfiguracja usługi WINS i DNS Konfiguracja usługi WINS i DNS Do czego wykorzystuje się usługę WINS? Serwer WINS (ang. Windows Internet Name Service) jest bazą danych wspomagającą sied NetBIOS (ang. Network Basic Input/Output System).

Bardziej szczegółowo

Aneks do instrukcji obsługi routera Asmax Br-804v II

Aneks do instrukcji obsługi routera Asmax Br-804v II Aneks do instrukcji obsługi routera Asmax Br-804v II 1. Aneks do filtrowania WAN (firmware V0.05) 2. Aneks do filtrowania LAN IP Filters (firmware A0.05) 3. Aneks do filtrowania LAN MAC Filters (firmware

Bardziej szczegółowo

Instrukcja konfiguracji funkcji skanowania

Instrukcja konfiguracji funkcji skanowania Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

INSTRUKCJA INSTALACJI I OBSŁUGI ZBIORCZE E-DEKLARCJE. dla Kadr Plac i ZUS PRO

INSTRUKCJA INSTALACJI I OBSŁUGI ZBIORCZE E-DEKLARCJE. dla Kadr Plac i ZUS PRO INSTRUKCJA INSTALACJI I OBSŁUGI ZBIORCZE E-DEKLARCJE dla Kadr Plac i ZUS PRO I. Instalacja Programu Program Kadry Płace i ZUS PRO może to być dowolny folder jednak preferowaną lokalizacja jest : BiznesmenPro\eDeklaracje.

Bardziej szczegółowo

Przypisywanie bibliotek w architekturze SAS

Przypisywanie bibliotek w architekturze SAS SAS Institute TECHNICAL SUPPORT Przypisywanie bibliotek w architekturze SAS Platforma SAS pozwala na zdefiniowanie wspólnych zasobów w metadanych oraz ustalanie praw dostępu dla użytkowników i grup. Ze

Bardziej szczegółowo

Tunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR.

Tunelowanie, kapsułkowanie, XDR. 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR. Tunelowanie, kapsułkowanie, XDR 1. Transmisja tunelowa i kapsułkowanie serwery proxy. 2. Zewnętrzna reprezentacja danych XDR. 1 Transmisja tunelowa i kapsułkowanie Sieci komputerowe rozwijały się stopniowo

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Laboratorium 3.4.2: Zarządzanie serwerem WWW Laboratorium 3.4.2: Zarządzanie serwerem WWW Topologia sieci Tabela adresacji Urządzenie Interfejs Adres IP Maska podsieci Domyślna brama R1-ISP S0/0/0 10.10.10.6 255.255.255.252 Nie dotyczy Fa0/0 192.168.254.253

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Programowanie aplikacji równoległych i rozproszonych. Wykład 4

Programowanie aplikacji równoległych i rozproszonych. Wykład 4 Wykład 4 p. 1/44 Programowanie aplikacji równoległych i rozproszonych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Gniazda - Wstęp

Bardziej szczegółowo

INFORMATOR TECHNICZNY WONDERWARE

INFORMATOR TECHNICZNY WONDERWARE Informator techniczny nr 119 12-02-2010 INFORMATOR TECHNICZNY WONDERWARE Zalecana instalacja i konfiguracja Microsoft SQL Server 2008 Express Edition dla oprogramowania Wonderware UWAGA! Przed instalowaniem

Bardziej szczegółowo

Serwer DHCP (dhcpd). Linux OpenSuse.

Serwer DHCP (dhcpd). Linux OpenSuse. 2015 Serwer DHCP (dhcpd). Linux OpenSuse. PIOTR KANIA Spis treści Wstęp.... 2 Instalacja serwera DHCP w OpenSuse.... 2 Porty komunikacyjne.... 2 Uruchomienie, restart, zatrzymanie serwera DHCP... 2 Sprawdzenie

Bardziej szczegółowo

Adresy w sieciach komputerowych

Adresy w sieciach komputerowych Adresy w sieciach komputerowych 1. Siedmio warstwowy model ISO-OSI (ang. Open System Interconnection Reference Model) 7. Warstwa aplikacji 6. Warstwa prezentacji 5. Warstwa sesji 4. Warstwa transportowa

Bardziej szczegółowo

2. Interfejs gniazd. 2.1. Gniazdo

2. Interfejs gniazd. 2.1. Gniazdo 2. 2.1. Gniazdo Gniazdo (ang. socket): pewna abstrakcja wykorzystywana do wysyłania lub otrzymywania danych z innych procesów. Pełni rolę punktu końcowego w linii komunikacyjnej. to interfejs między programem

Bardziej szczegółowo

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2 ( $%%) )'20 )*0) 1 / ) Jzyk C++ cz 3 Jarosław Gramacki Instytut Informatyki i Elektroniki # $$%%& ' ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )!" 2 # $$%%& ' ( $%%/,))3 ( %* 2 / 4 ( ( *' *''*,

Bardziej szczegółowo

Dokumentacja techniczna API systemu SimPay.pl

Dokumentacja techniczna API systemu SimPay.pl Wprowadzenie Dokumentacja techniczna API systemu SimPay.pl Wersja 1.0 z dnia 24.03.2015 r. API serwisu SimPay.pl opiera się o danych wysyłanych i zwracanych w formie JSON. W przypadku napotkania jakiegokolwiek

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

DNS Domain Name Service

DNS Domain Name Service DNS Domain Name Service CEZARY SOBANIEC mailto:sobaniec@cs.put.poznan.pl $Id: dns-folie.lyx,v 1.5 2002/11/06 21:00:49 sobaniec Exp $ DNS DNS ang. Domain Name Service, system nazewnictwa domen mechanizm

Bardziej szczegółowo

Gniazda - Wstęp. Oprogramowanie systemów równoległych i rozproszonych. Sposób komunikacji. Domena adresowa. olas@icis.pcz.pl

Gniazda - Wstęp. Oprogramowanie systemów równoległych i rozproszonych. Sposób komunikacji. Domena adresowa. olas@icis.pcz.pl Gniazda - Wstęp Oprogramowanie systemów równoległych i rozproszonych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Domena adresowa 1/??

Bardziej szczegółowo

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne Dokumentacja programu e Zoz Opis biblioteki PhantomAPI.dll Wersja 1.22.1.5 Zielona Góra 2010-08-26 1. Opis ogólny Biblioteka programistyczna PhantomAPI.dll służy do integracji oprogramowania zewnętrznego

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

Laboratorium podstaw telekomunikacji

Laboratorium podstaw telekomunikacji Laboratorium podstaw telekomunikacji Temat: Pomiar przepustowości łączy w sieciach komputerowych i podstawowe narzędzia sieciowe. Cel: Celem ćwiczenia jest przybliżenie studentom prostej metody pomiaru

Bardziej szczegółowo

BACKUP BAZ DANYCH MS SQL

BACKUP BAZ DANYCH MS SQL BACKUP BAZ DANYCH MS SQL SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje Podstawowe... 2 Krok 2: Dane... 3 Krok 3: Planowanie... 4 Krok 4: Zaawansowane... 5 Przywracanie baz

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI DLA SIECI

INSTRUKCJA OBSŁUGI DLA SIECI INSTRUKCJA OBSŁUGI DLA SIECI Zapisywanie dziennika druku w lokalizacji sieciowej Wersja 0 POL Definicje dotyczące oznaczeń w tekście W tym Podręczniku użytkownika zastosowano następujące ikony: Uwagi informują

Bardziej szczegółowo

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo