﻿ #include <string.h> 
 #include <stdio.h> 
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netdb.h> 
 #include <netinet/in.h>
 #include <errno.h> 
  
  int pscan(char *hostaddr, int cport, int socktype);
  
 
 int main(int argc, char *argv[])
 {
 int cport; 
 
 
 if (argc < 2) {
 printf("Myscanner v1.2 by fatz4\n");
  printf("blog.naver.com/fatz4\n");
  printf("%s host\n",argv[0]);
 exit(1);
 }
 
 
 for (cport = 1;cport < 1024;cport++) {
 
 if (pscan(argv[1], cport, SOCK_STREAM) == 0) {
 printf("%5d Open\n", cport);
 }
 }
  
 return 0; 
 }
  
 
 int pscan(char *hostaddr, int cport, int socktype)
 {
 int sockfd; 
 struct hostent *he;
 struct sockaddr_in destaddr;
 int pok;
  
 if ((he = gethostbyname(hostaddr)) == NULL) {
 herror("gethostbyname");  
 return 0;
 }
 
 
 sockfd = socket(AF_INET, socktype, 0);
 
  destaddr.sin_family = AF_INET; 
 destaddr.sin_addr = *((struct in_addr *)he->h_addr); 
 destaddr.sin_port = htons(cport); 
 bzero(&(destaddr.sin_zero), 8);
 
 pok = connect(sockfd, (struct sockaddr *)&destaddr, sizeof(struct sockaddr));
 close(sockfd);  
  if (pok == -1)
 return -1;
 return 0;
 }
