Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* -*-C-*- tcpprobe.c */
- /* tcpprobe - report on which tcp ports accept connections */
- /* IO ERROR, error@axs.net, Sep 15, 1995 */
- #include
- #include
- #include
- #include
- #include
- #include
- <stdio.h>
- <sys/socket.h>
- <netinet/in.h>
- <errno.h>
- <netdb.h>
- <signal.h>
- int main(int argc, char **argv)
- {
- int probeport = 0;
- struct hostent *host;
- int err, i, net;
- struct sockaddr_in sa;
- if (argc != 2) {
- printf("Usage: %s hostname\n", argv[0]);
- exit(1);
- }
- for (i = 1; i < 1024; i++) {
- strncpy((char *)&sa, "", sizeof sa);
- sa.sin_family = AF_INET;
- if (isdigit(*argv[1]))
- sa.sin_addr.s_addr = inet_addr(argv[1]);
- else if ((host = gethostbyname(argv[1])) != 0)
- strncpy((char *)&sa.sin_addr, (char *)host->h_addr, sizeof sa.sin_addr);
- else {
- herror(argv[1]);
- exit(2);
- }
- sa.sin_port = htons(i);
- net = socket(AF_INET, SOCK_STREAM, 0);
- if (net < 0) {
- perror("\nsocket");
- exit(2);
- }
- err = connect(net, (struct sockaddr *) &sa, sizeof sa);
- if (err < 0) {
- printf("%s %-5d %s\r", argv[1], i, strerror(errno));
- fflush(stdout);
- } else {
- printf("%s %-5d accepted.
- \n", argv[1], i);
- if (shutdown(net, 2) < 0) {
- perror("\nshutdown");
- exit(2);
- }
- }
- close(net);
- }
- printf("
- \r");
- fflush(stdout);
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement