侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

后台扫描,网测通过

2023-04-28 星期五 / 0 评论 / 0 点赞 / 66 阅读 / 4116 字

#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <string.h>#include <netdb.h

.

#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <arpa/inet.h>

#define LINE 1024
#define dict "dict.txt"
#define result "manager.txt"

int main(int argc,char *argv[]){
 int sc,fd;
 unsigned short port = 80;
 struct sockaddr_in add;struct in_addr in;
 char *ip;
 struct hostent *host;
 char rheader[LINE],dictbuf[LINE],resbuf[LINE];
 char *dir,path[LINE]="",*arr[LINE],*tmp,state[3],manager[LINE];
 int i=0,j,n=0,bytes;

 if(argc != 2){
   printf("please input domain./r/n");
   return;
 }

 dir = get_current_dir_name();
 strcat(path,dir);
 strcat(path,"/");
 strcat(path,dict);
 fd = open(path,O_RDONLY);
 read(fd,dictbuf,sizeof(dictbuf));
 close(fd);
 arr[n++]=strtok(dictbuf,"/r/n");
 while(tmp=strtok(NULL,"/r/n"))arr[n++]=tmp;

 ip = malloc(512);
 memset(ip,'/0',512);

 sc = socket(AF_INET,SOCK_STREAM,0);
 if(sc == -1){
   printf("create socket fail!/r/n");
   return;
 }

 bzero(&add,sizeof(add));
 add.sin_family=AF_INET;
 add.sin_port=htons(port);

 bzero(&path,sizeof(path));
 strcat(path,dir);
 strcat(path,"/");
 strcat(path,result);
 fd = open(path,O_WRONLY|O_CREAT|O_APPEND,S_IRWXU);

 if(!(host=gethostbyname(argv[1]))){
     fprintf(stderr,"Can`t resolve host./n");
     exit(1);
 }

 memcpy(&add.sin_addr.s_addr,host->h_addr_list[0],4);
 in.s_addr = add.sin_addr.s_addr;
 printf("IP:%s/n",ip=inet_ntoa(in));

 add.sin_addr.s_addr=inet_addr(ip);
 if(connect(sc,(struct sockaddr *)(&add),sizeof(struct sockaddr))==-1){
   printf("conn fail!/r/n");
   return -1;
 }
 for(;i<n;i++){
   memset(manager,'/0',LINE);
   memset(rheader,'/0',LINE);

   strcat(rheader,"HEAD ");
   strcat(rheader,arr[i]);
   strcat(rheader," HTTP/1.1");
   strcat(rheader,"/r/n");

   strcat(rheader,"Host:");
   strcat(rheader,argv[1]);
   strcat(rheader,"/r/n");

   strcat(rheader,"/r/n");
   printf("send:[/n%s/n]/n",rheader);
   write(sc, rheader, strlen(rheader));usleep(100);        
   bytes = read(sc, resbuf, LINE);        
   printf("Response from %s:[/n%s/n]/n",ip,resbuf);        

   for(j=0;j<3;j++){
     state[j]=resbuf[j+9];
   }
   printf("state:%s/n",state);
   if(!((strcmp(state,"400")>=0 && strcmp(state,"450")<=0)||strcmp(state,"500")==0)){
     strcat(manager,"http://");
     strcat(manager,argv[1]);
     strcat(manager,arr[i]);
     printf("********%s*******/n",manager);
     strcat(manager,"/r/n");
     write(fd,manager,sizeof(manager));
   }    
 }
 close(sc);  
 close(fd);
 return 0;
}

.

广告 广告

评论区