• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

c portscanner wo ist der fehler?

orpheus

Newbie
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:
#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
 
A

Anonymous

Gast
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:
 #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
 
Oben