Advertisement
Guest User

Advanced Port Scaner

a guest
Nov 1st, 2010
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #pragma comment(lib, "ws2_32.lib");
  4.  
  5. int main ()
  6. {
  7.     int option;
  8.     int numOfPorts;
  9.     int *portsArr;
  10.     sockaddr_in sin;
  11.     std::cout << "1. List(ex: x - y)\n";
  12.     std::cout << "2. Specific\n";
  13.     std::cout << "Option: ";
  14.     std::cin >> option;
  15.     if(option == 1)
  16.     {
  17.         WSADATA wsData;
  18.         if(WSAStartup(MAKEWORD(2, 2), &wsData) != 0)
  19.         {
  20.             std::cout << "Error: Cannot startup\n";
  21.             std::cin.get();
  22.             std::cin.get();
  23.             return 0;
  24.         }
  25.         int firstPort, secondPort;
  26.         std::cout << "First port: ";
  27.         std::cin >> firstPort;
  28.         std::cout << "Second port: ";
  29.         std::cin >> secondPort;
  30.         for(int i = firstPort; i <= secondPort; i++)
  31.         {
  32.             SOCKET pSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  33.             if(pSocket == INVALID_SOCKET)
  34.             {
  35.                 std::cout << "Error: Invalid Socket\n";
  36.                 std::cin.get();
  37.                 std::cin.get();
  38.                 return 0;
  39.             }
  40.             ZeroMemory(&sin, sizeof(sin));
  41.             sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
  42.             sin.sin_family = AF_INET;
  43.             sin.sin_port = htons(i);
  44.             if(connect(pSocket, (sockaddr*)&sin, sizeof(sin)) != SOCKET_ERROR)
  45.             {
  46.                 std::cout << "Port: " << i << " is open!\n";
  47.             }
  48.             else
  49.             {
  50.                 std::cout << "Port: " << i << " is closed!\n";
  51.             }
  52.             closesocket(pSocket);
  53.         }
  54.     }
  55.     else if(option == 2)
  56.     {
  57.         WSADATA wsData;
  58.         if(WSAStartup(MAKEWORD(2, 2), &wsData) != 0)
  59.         {
  60.             std::cout << "Error: Cannot startup\n";
  61.             std::cin.get();
  62.             std::cin.get();
  63.             return 0;
  64.         }
  65.         std::cout << "How many ports would you like to scan?:";
  66.         std::cin >> numOfPorts;
  67.         if(numOfPorts <= 0)
  68.         {
  69.             std::cout << "Ports must be greater than 0";
  70.         }
  71.         else
  72.         {
  73.             portsArr = new int[numOfPorts];
  74.             for(int i = 0; i < numOfPorts; i++)
  75.             {
  76.                 std::cout << "Port[" << i << "]: ";
  77.                 std::cin >> portsArr[i];
  78.             }
  79.             for(int i = 0; i < numOfPorts; i++)
  80.             {
  81.                
  82.                 SOCKET pSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  83.                 if(pSocket == INVALID_SOCKET)
  84.                 {
  85.                     std::cout << "Error: Invalid Socket\n";
  86.                     std::cin.get();
  87.                     std::cin.get();
  88.                     return 0;
  89.                 }
  90.                 ZeroMemory(&sin, sizeof(sin));
  91.                 sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
  92.                 sin.sin_family = AF_INET;
  93.                 sin.sin_port = htons(portsArr[i]);
  94.  
  95.                 if(connect(pSocket, (sockaddr*)&sin, sizeof(sin)) != SOCKET_ERROR)
  96.                 {
  97.                     std::cout << "Port: " << portsArr[i] << " is open!\n";
  98.                 }
  99.                 else
  100.                 {
  101.                     std::cout << "Port: " << portsArr[i] << " is closed!\n";
  102.                 }
  103.                 closesocket(pSocket);
  104.             }
  105.         }
  106.         delete [] portsArr;
  107.     }
  108.     else
  109.     {
  110.         std::cout << "Enter a valid option!\n";
  111.         std::cin.get();
  112.         std::cin.get();
  113.         return 0;
  114.     }
  115.     std::cin.get();
  116.     std::cin.get();
  117.     return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement