/* connect.c */
#include<stdio.h>
#include<netinet/in.h>
#include<netdb.h> /* gethostbyname() */
#include<sys/types.h>
#include<sys/socket.h>
main(int argc, char **argv)
{
struct sockaddr_in target;
struct hostent *target_name;
int socket_fd; /* descriptor del socket */
if(argc!=3)
target_name=gethostbyname(argv[1]); /*estructura hostent*/
/* ESTRUCTURA sockaddr_in A QUIEN QUEREMOS SCANNEAR */
target.sin_family=AF_INET;
target.sin_addr=*((struct in_addr *)target_name->h_addr);
target.
sin_port=htons
(atoi(argv
[2])); bzero(&(target.sin_zero),8);
/* FIN DEL LLENADO DE LA ESTRUCTURA sockaddr_in */
socket_fd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
/* Si logramos conectar al puerto de nuestro objetivo, imprime PUERTO ABIERTO, si no... */
if((connect(socket_fd,(struct sockaddr *)&target,sizeof(target)))!=-1)
printf("Puerto %s Abierto\n",argv
[2]); else
printf("Puerto %s Cerrado\n",argv
[2]);
close(socket_fd);
return 0;
}