Protokół DNS. Aplikacja dnsquery
|
|
- Adam Michalik
- 8 lat temu
- Przeglądów:
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. 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ółowoStatystyka 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ółowo3. 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ółowoAplikacja 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ółowoProtokół 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ółowoNarzę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ółowoSieci 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ółowoOprogramowanie 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ółowoPlan 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ółowoPlan 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ółowoInterfejs 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ółowoLiteratura 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ółowoProgramowanie 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ółowoInternet 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ółowoI - 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ółowoDomain 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ółowoInstytut 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ółowoProgramowanie 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ółowoTworzenie 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ółowoLaboratorium 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ółowoSUMA 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ółowoWykł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ółowoODWZOROWYWANIE 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ółowoSieci 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ółowoZiMSK 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ółowoLaboratorium - 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ółowoWykł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ółowoSun 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ółowoInstrukcja 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
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ółowoOBSŁ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 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ółowoZdalne 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ółowoJarosł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ółowoSun 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ółowoLaboratorium 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ółowoZnajdywanie 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ółowoRPC. 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ółowoSieci 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ółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoProgramowanie 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ółowoZdalne 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ółowo1. 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 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ółowoexternal 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ółowoIteracyjny 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ółowoInterfejs 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ółowoKurs 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ółowoKatedra 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ółowoC++ 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ółowoSerwer 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ółowoSieci 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ółowoPodstawy 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ółowoDR 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ółowoProgramowanie 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ółowoSieciowa 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ółowoDKonfigurowanie 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ółowoSystem 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ółowoLaboratorium - 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ółowoKró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ółowoKLASA 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ółowoSieciowe 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ółowoIMIĘ 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ółowoTCP - 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ółowoOprogramowanie 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ółowoProgramowanie 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ółowopasja-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ółowoProblemy 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ółowoKonfiguracja 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ółowoSieci 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ółowoArchitektura 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ółowoZadanie1: 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoObsł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ółowoTCP/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ółowoWskaź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 Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie. Bazowa zawartość
Bardziej szczegółowoZa 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ółowoArchitektura 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ółowoonfiguracja 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ółowoT: 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ółowoCzęść 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ółowoSkł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ółowoPodstawy 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ółowoPROGRAMOWANIE 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ółowoSystemy 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ółowoSignals + 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ółowoInformatyka 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ółowoWindows 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ółowoOprogramowanie 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ółowoSieci 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ółowoexternal 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ółowoDariusz 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ółowoPodstawy 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ółowoAplikacja 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ółowoGniazda 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ółowoProgramowanie 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ółowoAkademia 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ółowoPobieranie 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