Herramientas de usuario

Herramientas del sitio


notas:programacion:sockets_en_linux:scanner_de_puertos_simple

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

notas:programacion:sockets_en_linux:scanner_de_puertos_simple [2014/02/07 18:04] – creado cayunotas:programacion:sockets_en_linux:scanner_de_puertos_simple [Fecha desconocida] (actual) – borrado - editor externo (Fecha desconocida) 127.0.0.1
Línea 1: Línea 1:
-<code c> 
-#include <sys/types.h> 
-#include <sys/socket.h> 
-#include <netinet/in.h> 
-#include <netdb.h> 
-#include <stdio.h> 
-#include <errno.h> 
-#include <fcntl.h> 
- 
- 
-main(int argc, char *argv[]) { 
-   int sock,rval,puerto; 
-   struct sockaddr_in server; 
-   struct hostent *hp, *gethostbyname(); 
- 
-   if (argc < 2) { 
-      printf("Uso: %s nombre_host \n", argv[0]); 
-      exit (1); 
-   } 
-   printf("\nEscaner de puertos (^C para salir)\n"); 
-   
-   hp = gethostbyname(argv[1]); 
-   if (hp == 0) { 
-      fprintf(stderr, "%s: No se puede resolver el nombre\n", 
-         argv[1]); 
-      exit(2); 
-   } 
- 
-   for(puerto=0;1;puerto++){ 
- 
-   /* Creamos un socket orientado a conexion */ 
-   sock = socket(PF_INET, SOCK_STREAM, 0); 
-   if (sock < 0) { 
-      perror("No se ha podido conseguir un socket"); 
-      exit(1); 
-   } 
- 
-   server.sin_family = AF_INET; 
- 
-   memcpy((char *)&server.sin_addr, (char *)hp->h_addr,  
-      hp->h_length); 
-   server.sin_port = htons(puerto); 
- 
-   if (connect(sock, (struct sockaddr *)&server,  
-   sizeof server)>=0)printf("Puerto abierto =>%d\n",puerto); 
- 
-   close(sock);      
- 
-                  
- 
-   exit(0); 
-} 
-</code> 
  
notas/programacion/sockets_en_linux/scanner_de_puertos_simple.1391796242.txt.gz · Última modificación: 2014/02/07 18:04 por cayu