C++ Portscanner
-
Ich habe mich hier mal an einem Portscanner probiert.
Leider baut dieser keine Verbindung auf und erhalte den Rückgabewert -1.
Ich wäre sehr froh ,wenn ihr mir helfen würdet.#include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <iostream> using namespace std; int main() { char *ip; char var; int socket_nummer; int laenge; struct sockaddr_in adressinfo; int ergebnis; cout << "IP-Adresse:"; cin >> var; ip = &var; unsigned short int portnummer; for (portnummer = 0;portnummer<65535;portnummer++) { socket_nummer = socket(AF_INET, SOCK_STREAM, 0); adressinfo.sin_family = AF_INET; adressinfo.sin_addr.s_addr = inet_addr(ip); adressinfo.sin_port = htons(portnummer); laenge = sizeof(adressinfo); ergebnis = connect(socket_nummer, (struct sockaddr *)&adressinfo, laenge); if (ergebnis == 0) { printf("\n Verbindungsaufbau erfolgreich an"); printf("IP %s - Port %d",ip,portnummer); } if (ergebnis == -1) { cout << "Fail"; break; } close(socket_nummer); } printf("\n\n"); }
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
luggas schrieb:
Ich wäre sehr froh ,wenn ihr mir helfen würdet.
Kann es sein, dass Dir Grundlagenwissen fehlt?
char *ip; char var; // […] cout << "IP-Adresse:"; cin >> var; ip = &var;
Was soll den das sein?
-
Bei deinem Code muss ich kotzen.
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <iostream> int main() { std::string ip; std::cout << "IP-Adresse:"; std::cin >> ip; sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.sin_addr = inet_addr(ip.c_str()); for(unsigned short port = 1; port; ++port) { int socket = socket(AF_INET, SOCK_STREAM, 0); addr.sin_port = htons(port); if(!connect(socket, reinterpret_cast<sockaddr*>(&addr), sizeof(sockaddr))) std::cout << "Verbindung an Port " << port << " erfolgreich" << std::endl; else std::cout << "Verbindung an Port " << Port << " nicht erfolgreich" << std::endl; close(socket); } }
Bezüglich Port 0 siehe http://compnetworking.about.com/od/tcpip/p/port-numbers-0.htm
-
Ihr habt wahrscheinlich recht.
Ich probier mich erstmal an einfacheren Dingen.
Aber trotzdem danke für die Hinweise.