Ich habe hier einen kleinen "Portscanner" geschrieben, aber er scheint nicht wirklich zu funktionieren. Wenn ich z.B meinen eigenen VPS scanne wo ich vorher den Webserver-Dienst abgeschaltet habe bekomme ich trotzdem die Meldung, dass der Port offen ist. Weiß jmd. woran das liegen kann?

Code:
#pragma comment (lib, "wsock32.lib")
#include <WinSock.h>
#include <iostream>
using namespace std;

const int  MAX_PORT = 1024;
const int  MIN_PORT = 1;

int main(int argc, char *argv[]) {

    if (argc < 2) return 0;

    int    proof;
    struct sockaddr_in client;

    WSADATA wsaData;
    WORD wVersionRequested = MAKEWORD(2, 2);
    WSAStartup(wVersionRequested, &wsaData);

    memset(&client, 0, sizeof(client));
    client.sin_family       = AF_INET;    
    client.sin_addr.s_addr = inet_addr(argv[1]);

    cout << endl << "Starting ... " << endl << endl;
    
    for (int i = MIN_PORT; i < MAX_PORT; i++) {
        client.sin_port = htons(i);
        SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
        proof = connect(sock, (struct sockaddr*) &client, sizeof(struct sockaddr));
        if (proof == 0) cout << "Port " << i << " open!" << endl;
        closesocket(sock);
    }

    cout << "Scanning finished." << endl;
    WSACleanup();
    return 0;
}