📄 scan.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 + -