#include #include #include #include #include #include #include #define START 1 #define STOP 1024 void main(int argc, char **argv) { int s, port; struct hostent *host; struct sockaddr_in victim; printf("PortScan v1.0 - By darknite[@brigade.dhs.org]\n"); printf("For his socket-programming article, 1998\n"); if (argc < 2) { printf("Usage: %s \n", argv[0]); exit(-1); } host = gethostbyname(argv[1]); if (!host) { herror(argv[1]); exit(-1); } victim.sin_family = AF_INET; victim.sin_addr.s_addr = *(long *) (host->h_addr); for (port = START; port <= STOP; port++) { victim.sin_port = htons(port); s = socket(AF_INET, SOCK_STREAM, 0); if (s < 0) { printf("Error creating socket.\n"); exit(-1); } if (!connect(s, (struct sockaddr *) &victim, sizeof(victim))) printf("port: %i\n", port); if (close(s)) { printf("Error closing socket.\n"); exit(-1); } } }