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;
}