Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

c portscanner wo ist der fehler?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
orpheus
Newbie
Newbie
Beiträge: 24
Registriert: 25. Jul 2004, 20:28

c portscanner wo ist der fehler?

Beitrag von orpheus »

Hallo miteinander ich versuch grad nen kleinen portscanner zu proggen aber irgendwie klappts net kann mir jemand nen tip geben was da falsch ist? die schleife wird nur einmal ausgeführt und wieso?

Code: Alles auswählen

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif


#include <sys/socket.h>
//#inculde <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define BUF 1024

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

int create_socket;
struct sockaddr_in adress;
int size;
int port=0;

if ((create_socket=socket (AF_INET,SOCK_STREAM,0)) >0)
printf ("socket wurde angelegt\n");

adress.sin_family=AF_INET;
inet_aton (argv[1],&adress.sin_addr);

do
{
adress.sin_port=htons(port);
if (connect (create_socket,
	     (struct sockaddr *) &adress,
	     sizeof (adress))==0)
printf ("verbindung hergestellt mit port: %d \n",port);
close (create_socket);
port++;
}while (port!=99);

  return EXIT_SUCCESS;
}
gruss felix
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

So hier funktioniert zumindestens die Schleife, aber ich glaube irgend was fehlt noch, auf lokalem Rechner funkts aber übers Netz bleibt er hängen.

Code: Alles auswählen

 #ifdef HAVE_CONFIG_H 
 #include <config.h> 
 #endif 
 
 #include <sys/socket.h> 
 //#inculde <sys/types.h> 
 #include <netinet/in.h> 
 #include <arpa/inet.h> 
 #include <unistd.h> 
 #include <string.h> 
 #include <stdio.h> 
 #include <stdlib.h> 
 #define BUF 1024 
 
 int main(int argc, char *argv[]) 
 { 
 
 int create_socket; 
 struct sockaddr_in adress; 
 int size; 
 int port=0; 
 
 adress.sin_family=AF_INET; 
 inet_aton (argv[1],&adress.sin_addr); 
 
 do 
 {
  if ((create_socket=socket (AF_INET,SOCK_STREAM,0))  <1) 
 printf ("socket wurde nicht angelegt\n"); 
 
 adress.sin_port=htons(port); 
 if (connect (create_socket, 
         (struct sockaddr *) &adress, 
         sizeof (adress))==0) 
 printf ("verbindung hergestellt mit port: %d \n",port); 
 close (create_socket); 
 port++; 
 }while (port!=99); 
 
   return EXIT_SUCCESS; 
 } 
robi
Antworten