Ver Mensaje Individual
  #11 (permalink)  
Antiguo 22/04/2014, 18:42
Avatar de Drewermerc
Drewermerc
 
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Código Escaner de puertos en C++

hola principe_azul.
bueno al igual que tu no lelvo mucho con esto de los sockets pero mira ya pude correr tu codigo espero que esto te ayude.

Código C:
Ver original
  1. #include <winsock2.h>
  2.     #include <windows.h>    
  3.     #include <iostream>
  4. #pragma comment(lib, "Ws2_32.lib")
  5. using namespace std;
  6.  
  7. char IP[20];
  8. int startPort, endPort, err, nret;
  9.  
  10.  
  11.  
  12. int main()
  13. {
  14.     struct sockaddr_in conect;
  15.     SOCKET iSocket;
  16.     SOCKADDR_IN Info;
  17.     WSADATA wsaData;
  18.      if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0 )
  19.    {
  20.       cout << "Winsock Error, Exiting..." << endl;
  21.       cin.get();
  22.       return 0;
  23.    }
  24.  
  25.    cout << "Target IP: ";
  26.    cin>>IP;
  27.    cout << "Starting Port: ";
  28.    cin>>startPort;
  29.    cout << "End Port: ";
  30.    cin>>endPort;
  31.  
  32.    cin.ignore();
  33.  
  34.    cout << endl << endl << "Scanning..." << endl << endl;
  35.  
  36.    for(int i=startPort; i < endPort; i++)
  37.    {
  38.       //iSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  39.       iSocket = socket(AF_INET, SOCK_STREAM, 0);
  40.  
  41.       Info.sin_family = AF_INET;
  42.       Info.sin_port = htons(startPort);
  43.       nret = connect(iSocket, (struct sockaddr *)&conect, sizeof(struct sockaddr));
  44.       // error is for line above
  45.       if(nret != SOCKET_ERROR)
  46.       {
  47.          cout << "Port " << i << " - OPEN! " << endl;
  48.       }
  49.       //temp++;
  50.       closesocket(iSocket);
  51.     }
  52.     cout << endl << "Finished With Scan..." << endl;
  53.  
  54.     cin.get();
  55.     WSACleanup();
  56. }
saludos.