|
|
|
|
Outline ·
[ Estándar ] ·
Lineal+
Scanear puertos, Scanear puertos
| bres |
Apr 22 2005, 09:54 AM
|
I si m'equivoco torno a començar

Grupo: Supervisor Global
Mensajes: 810
Registrado: 22-July 03
Desde: Barcelona - Catalunya - España
Miembro nº: 3

|
Primero de todo, por favor, no escribas en mayúsculas, lo pone en las normas del foro. Ahora:
Tengo un código que hice hace tiempo. No es un scanner que te diga que servidor hay en cada puerto, pero para empezar a trabajar sobre él te puede servir. Este lo que va haciendo es probar de conectarse a los puertos de un rango que te pide antes por teclado. Los strings estan en catalan y me ha dado pereza traducirlos. Lo primero que te pide es el nombre de host (o ip) a escanear, luego el puerto mínimo y el puerto máximo. Cuando hay conexion te muestra el número de puerto y te dice que ha habido conexion.
| CODE | #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>
int main(int argc, char* argv[]){ struct hostent *host; struct sockaddr_in dest_addr; int sockd, portm,portM; char hostname[200]; printf("Introdueix el nom de host: "); scanf("%s",&hostname); if((host = gethostbyname(hostname))==NULL){//consultem el nom amb el DNS printf("Error al resoldre DNS\n"); exit(1);//si no es pot resoldre ,sortim } printf("Host name: %s\n",host->h_name);//mostrem el nom d'host i la IP printf("IP: %s\n", inet_ntoa(*((struct in_addr *)host->h_addr))); printf("Socket creat correctament\n\n"); printf("Introdueix el port mínim: "); scanf("%d",&portm); printf("Introdueix el port màxim: "); scanf("%d",&portM); dest_addr.sin_family=AF_INET;//familia d'adreces d'internet dest_addr.sin_addr=*((struct in_addr *)host->h_addr);//adreça a la que ens conectarem, memset(&(dest_addr.sin_zero),'\0',8);//omplim de zeros la resta de l'estructura for(;portm<=portM;portm++){ if((sockd = socket(AF_INET,SOCK_STREAM,0))==-1){//creem un socket printf("Error al obrir el socket\n"); exit(1);//si no es pot obrir sortim } dest_addr.sin_port=htons(portm);//port al que ens connectarem if(-1==connect(sockd,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr))){ }else{ printf("%d - hi ha connexió\n",portm); } close(sockd); } printf("Connexió tancada\n"); exit(0); }
|
|
|
|
|
|
Suscribirse a esta discusión
Recibirás una notificación vía correo cuando haya una respuesta y no estés activos en los foros.
Suscribirse a este foro
Recibirás una notificación vía correo cuando haya una nueva discusión y no estés activo en los foros.
Bajar/imprimir
Podrás bajar esta discusión en varios formatos o ver una versión apta para impresora.

Topicos similares

Topicos similares
|