====== Winsocket ====== ===== Zadanie 1 - Skaner portów ===== Napisz program skanujący porty pod zadanym adresem IP. Domyślnie skanowanie obywa się w zakresie 0-65535 na localhost. Aplikacja pozwala ustawić adres IP (lub zakres adresów) i zakres portów. Dla każdego aktywnego portu wyświetlany jest stosowny komunikat. Adres IP pobierany jest z kontrolki ''IP Addres Control'', numery portów z kontrolek ''EDIT'' zaś komunikaty o aktywnych portach wypisyswane są w kontrolce ''ListBox'' **Przydatne funkcje ** * plik nagłówkowy ''winsock2.h'' i biblioteka ''WS2_32.lib'' * kontrolka [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761374%28v=vs.85%29.aspx|IP Address Control]] \\ {{https://i-msdn.sec.s-msft.com/dynimg/IC423808.png|}} * komunikaty IPM_GETADDRESS, IPM_SETADDRESS * plik nagłównowy ''Commctrl.h'' i biblioteka ''Comctl32.lib'' * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761385%28v=vs.85%29.aspx|MAKEIPADDRESS]], ''FIRST_IPADDRESS'', ''SECOND_IPADDRESS'', ''THIRD_IPADDRESS'', ''FOURTH_IPADDRESS'' * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms742213%28v=vs.85%29.aspx|WSAStartup]], ''WSACleanup()'' \\ inicjalizacja WinSocket * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740506%28v=vs.85%29.aspx|socket]], closesocket(), tworzenie gniazda * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms737550%28v=vs.85%29.aspx|bind]] kojarzy gniazdo z lokalnym adresem * struktura [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740496%28v=vs.85%29.aspx|sockaddr_in]]: informacje o adresie IP, porcie * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738563%28v=vs.85%29.aspx|inet_addr]] zamienia adres IP z postaci łańcucha znakowego do postaci liczby całkoiwtej * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738557%28v=vs.85%29.aspx|htons]] transfrormacja liczby short wymagana przy definiowaniu portu w protokole AF_INET i AF_INET6 * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms738556%28v=vs.85%29.aspx|htonl]] transformacja liczby long wymagana przy określaniu adresu IP ww protokole AF_INET i AF_INET6 * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx|shutdown]] wyłącza wysyłanie/odbiór danych przez gniazdo * kontrolka ''[[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775146%28v=vs.85%29.aspx|List Box]]'' * komunikaty: LB_ADDSTRING, [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761321%28v=vs.85%29.aspx|LB_INSERTSTRING]]