#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>

#define MAXLINE 100
#define PORT 21
#define SLEEP 5

int grab(char *ip)
{
int sockfd,n;
char recvline[MAXLINE+1];

FILE *file;

struct sockaddr_in  servaddr;
struct hostent *destaddr;

	
if ((destaddr = gethostbyname(ip))== NULL)
	    {
	    perror("gethostbyname");
	    return;
	    }
	
	if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
		{
		perror("socket");
		return;
		}	
	
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(PORT);
	servaddr.sin_addr = *((struct in_addr *)destaddr->h_addr);
	printf("scanning %s\n",ip);
	if (connect(sockfd,(struct sockaddr *)& servaddr, sizeof(servaddr)) != 0)
		{
        perror("connect");
		return;
		}
	n = read(sockfd, recvline, MAXLINE);
	recvline[n] = 0;
	file = fopen("scanner.log","a+");
	fprintf(file,"%s %s\n",destaddr,recvline);
	fclose(file);
	close(sockfd);
	return;
}

int main(int argc, char **argv)
{
int i,j;
char addr[20];

for(i=0;i<255;i++)
	{


	snprintf(addr,16,"%s.%d",argv[1],i);
	sleep(SLEEP);
	grab(addr);	
	}
exit(0);
}




















	
