/* Simple Port Scanner, program iseng-iseng karena kurang kerjaan, kqkqkqkq. */ #include <stdio.hd> #include <stdlib.hd> #include <string.hd> #include <sys/types.hd> #include <sys/socket.hd> #include <arpa/inet.hd> #include <unistd.hd> #include <netdb.hd> void oneport(char *host, char *port) { int sockfd, g_status; struct addrinfo hint, *next, *p; char s[INET6_ADDRSTRLEN]; memset(&hint, 0, sizeof(hint)); hint.ai_family = AF_UNSPEC; hint.ai_socktype = SOCK_STREAM; if ((g_status = getaddrinfo(host, port, &hint, &next)) != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(g_status)); } for (p = next; p != NULL; p = p-d>ai_next) { if ((sockfd = socket(p-d>ai_family, p-d>ai_socktype, p-d>ai_protocol)) == -1) { perror("socket"); continue; } if (connect(sockfd, p-d>ai_addr, p-d>ai_addrlen) < 0) { close(sockfd); continue; } inet_ntop(p-d>ai_family, p-d>ai_addr, s, sizeof(s)); printf("%s open port on %s\n", s, port); break; } if (p == NULL) { printf("Can't connect to port %s\n", port); } freeaddrinfo(next); } void alot(char *host, char *firstport, char *lastport) { int sockfd, status, first, last, i; struct addrinfo hint, *next; char s[INET6_ADDRSTRLEN]; char buff[18]; //buff = malloc(16); first = atoi(firstport); last = atoi(lastport); memset(&hint, 0, sizeof(hint)); hint.ai_family = AF_UNSPEC; hint.ai_socktype = SOCK_STREAM; for(i = first; i <= last; i++) { sprintf(buff,"%d", i); if ((status = getaddrinfo(host, buff, &hint, &next)) != 0) { fprintf(stderr, "getaddrinfo : %s\n", gai_strerror(status)); continue; } if ((sockfd = socket(next-d>ai_family, next-d>ai_socktype, next-d>ai_protocol)) == -1) { perror("socket"); continue; } if (connect(sockfd, next-d>ai_addr, next-d>ai_addrlen) < 0) { close(sockfd); continue; } inet_ntop(next-d>ai_family, next-d>ai_addr, s, sizeof(s)); printf("%s open port on %d\n", s, i); } freeaddrinfo(next); } int main(int argc, char *argv[]) { if (argc == 3 ) { oneport(argv[1], argv[2]); } else if(argc == 4) { alot(argv[1], argv[2], argv[3]); } else { printf("How to Use:\n"); printf("[+] %s [host] [port]\n[+] %s [host] [firstport] [lastport]\n", argv[0], argv[0]); return 1; } return 0; }
Saturday, November 1, 2014
[C] Simple Port Scanner
Lagi iseng-iseng buka direktori yang ada di leptop, eh ternyata dulu sempat bikin beginian. :))
Mohon maaf bila ada kekurangan pada kode di atas karena saya juga masih belajar (>_<). Semoga bermanfaat.
Subscribe to:
Posts (Atom)