Wie kann ich den portscanner verändern?



  • hi
    der portscanner ist voll billig! Ich weiß net mal ob er funtzt!

    wie kann ich den aufpeppeln?

    2. Der Beispiel-Sourcecode
    --------------------------
    // Portscanner.cpp
    // Die Datei "ws2_32.lib" muss mitgelinkt werden, sonst gibt es Fehlermeldungen!
    
    #include <winsock2.h>
    #include <stdio.h>
    
    #define MAX_SIZE 128
    
    WSADATA wsaData;
    SOCKET sock;
    struct sockaddr_in host;
    struct hostent *hnt;
    char adresse[MAX_SIZE];
    int startport, endport;
    
    // Funktion zum Überprüfen der Ports
    int PruefePort(int port)
    {
    // Socket erstellen
    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
    {
    printf("Fehler: Socket kann nicht erstellt werden!");
    return -1;
    }
    
    // Struktur "host" mit eingegebenen Daten füllen
    ZeroMemory(&host, sizeof(host));
    CopyMemory(&host.sin_addr, hnt->h_addr_list[0], sizeof(host.sin_addr));
    host.sin_family = AF_INET;
    host.sin_port = htons(port);
    
    if (connect(sock, (struct sockaddr *)&host, sizeof(host)) == 0)
    {
    closesocket(sock);
    // Port offen, 0 zurückgeben
    return 0;
    }
    else
    {
    closesocket(sock);
    // Port geschlossen, -1 zurückgeben
    return -1;
    }
    }
    
    // Hauptprogramm
    void main()
    {
    // Daten abfragen
    printf("IP-Adresse oder Hostname: ");
    gets(adresse);
    printf("Startport: ");
    scanf("%i", &startport);
    printf("Endport: ");
    scanf("%i", &endport);
    
    // Porteingabe überprüfen
    if (startport > endport)
    {
    int tmp = endport;
    endport = startport;
    startport = tmp;
    }
    
    // "WS2_32.DLL" aufrufen, um mit Sockets arbeiten zu können
    if (WSAStartup(0x202, &wsaData) != 0)
    {
    printf("WSAStartup-Fehler!");
    return;
    }
    
    printf("Angegebene Adresse wird entschlüsselt...");
    
    // host-Adresse entschlüsseln
    if ((hnt = gethostbyname(adresse)) == NULL)
    {
    printf("Fehler: Hostname kann nicht entschlüsselt werden!");
    return;
    }
    printf("Fertig!\n");
    
    // Auf offene Ports überprüfen
    for (int port = startport; port <= endport; port++)
    if (PruefePort(port) == 0)
    printf("Port %u offen!\n", port);
    
    printf("Beende Programm...\n"); 
    
    // Benutzung der "WS2_32.DLL" beenden
    WSACleanup();
    }
    


  • By Hume:
    Wohin mit meiner Frage?

    lesen, verstehen, nächstes Mal besser machen.



  • schön!

    warum soll das hier net reinpassen? Hier postet jeder seine Fragen!?!
    ...nur ich werde immer dumm angemacht! *heul*



  • Lies dir den Text halt mal durch...

    bei
    #include <winsock.h>
    hört der C++ Standard auf...

    Mit C++ sei ein Toaster programmierbar, und der hat keine Sockets...
    Unter Linux aber gibt es auch kein <winsock.h>

    In diesem Teil der Community wird aber nur über Standard C++ geredet.
    Wenn du spezielle Fragen, z.B. zur WinAPI hast, solltest du auch dort fragen, weil dort die Profis dafür unterwegs sind.

    Es geht ja nicht gegen dich.



  • wußte ich ja net!
    ...deshalb habe ich ja auch gefragt! 😞


Anmelden zum Antworten