Cieslin

WinSockDNS-Oceniane_1

Mar 6th, 2018
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. // WinSockDNS-Oceniane_1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <winsock.h>
  6. #include <conio.h>
  7. #include <Windows.h>
  8. #include <locale.h>
  9. #include <iostream>
  10. #pragma comment(lib,"WS2_32.lib")
  11.  
  12. using namespace std;
  13.  
  14.  
  15. class DNS {
  16. private:
  17.     char buff[255];
  18.     void showError() {
  19.         char text[1024];
  20.         FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, WSAGetLastError(), 0, text, sizeof(text), NULL);
  21.         printf("%s\n", text);
  22.     }
  23. public:
  24.     DNS() {
  25.         WSADATA ws;
  26.         int result = WSAStartup(MAKEWORD(1, 0), &ws);
  27.         if (result != 0)
  28.         {
  29.             printf("Błąd inicjalizacji funkcji WSAStartup\n");
  30.             return;
  31.         }
  32.         showError();
  33.         result = gethostname(buff, sizeof(buff));
  34.         if (result != 0) {
  35.             printf("Błąd inicjalizacji funkcji gethostname\n");
  36.             return;
  37.         }
  38.         printf("Nazwa hosta: %s\n", buff);
  39.     }
  40.  
  41.     ~DNS() {
  42.         WSACleanup();
  43.         showError();
  44.     }
  45.  
  46.     void getIP(char *hostname){
  47.         HOSTENT *h = gethostbyname(hostname);
  48.         if (h != 0)
  49.         {
  50.             int i = 0;
  51.             while (h->h_addr_list[i] != 0)
  52.                 printf("[%d]: %s\n", i, inet_ntoa(*(in_addr*)h->h_addr_list[i++]));
  53.         }
  54.         showError();
  55.     }
  56. };
  57.  
  58. int main()
  59. {
  60.     setlocale(LC_ALL, "pl-PL");
  61.     char hostname[255];
  62.     DNS d;
  63.     do {
  64.         printf("Podaj nazwe domeny: ");
  65.         cin >> hostname;
  66.         d.getIP(hostname);
  67.         _getch();
  68.         system("cls");
  69.     }
  70.     while (hostname != "\n");
  71.     d.~DNS();
  72.     system("PAUSE");
  73.     return 0;
  74. }
Add Comment
Please, Sign In to add comment