⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scan.c

📁 Linux下的端口扫描器
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <netinet/in.h>#include <errno.h>#include <netdb.h>#include <signal.h>void usage(){    printf("===========chenkaihui ==========\n");    printf("usage:scan 192.168.1.1 1 1000\n");}main(int argc,char **argv){    int startport = 0;    int endport = 0;    int probeport  = 0;    struct hostent *host;    int err , i ,net;    struct sockaddr_in sa;    if (argc != 4){	usage();	exit(1);    }    startport = atoi(argv[2]);    endport = atoi(argv[3]);    for ( i = startport; i < endport ; 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("\n socket");	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("\n shutdown");	    exit(2);	}    }    close(net);    }    printf("\r\n");    fflush(stdout);    return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -