用c写了个后台扫描
/**
* Notice: The program is not debug on internet and not use thread supervene.
* date : 6-26
* author: jker
**/
#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>
#define LINE 1024
#define dict "dict.txt"
#define result "manager.txt" void itos(int num,char *str){
int a=num;
int x,y,z;
x=a/;
y=a%/;
z=a%;
if(x==){
if(y==){
str[]+=z;
str[]='\0';
}else{
str[]+=y;
str[]+=z;
str[]='\0';
}
}else{
str[]+=x;
str[]+=y;
str[]+=z;
str[]='\0';
}
return;
}
char *nip(char *oip){
char *str[]={""},*rtn;
char *delim = ".";
char * tmp;
int i=;
char arr[]={,,,'\0'};
rtn = malloc();
memset(rtn,'\0',);
tmp = strtok(oip,delim);
str[i++]=tmp;
while(tmp=strtok(NULL,delim)){
str[i++]=tmp;
} for(i=;i>=;i--){
if(atoi(str[i])<){
itos(atoi(str[i])+,arr);
str[i]=arr;
break;
}
} for(i=;i<;i++){
strcat(rtn,str[i]);
if(i<)strcat(rtn,delim);
} return rtn;
}
int main(int argc,char *argv[]){
int sc,fd;
unsigned short port = ;
struct sockaddr_in add;
char *ip,*sip,*eip;
struct hostent *host;
char rheader[LINE],dictbuf[LINE],resbuf[LINE];
char *dir,path[LINE]="",*arr[LINE],*tmp,state[],manager[LINE];
int i=,n=,bytes;
if(argc != ){
printf("please input startIp and endIp.\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();
memset(ip,'\0',);
sip = argv[];
eip = argv[];
strcpy(ip,sip); memset(manager,'\0',LINE);
memset(rheader,'\0',LINE); sc = socket(AF_INET,SOCK_STREAM,);
if(sc == -){
printf("create socket fail!\r\n");
return -;
}
printf("create socket ok.\r\n");
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); do{
host = gethostbyaddr(ip,strlen(ip),AF_INET);
if(host == (struct hostent *)NULL) {
printf("can`t get host from %s\r\n",ip);
if(strcmp(ip,eip)<)ip=nip(ip);
continue;
}else{
printf("host name:%s\n",host->h_name);
} add.sin_addr.s_addr=inet_addr(ip);
if(connect(sc,(struct sockaddr *)(&add),sizeof(struct sockaddr))==-){
printf("conn fail!\r\n");
return -;
}
for(;i<n;i++){
strcat(rheader,"HEAD ");
strcat(rheader,arr[i]);
strcat(rheader," HTTP/1.1");
strcat(rheader,"\r\n");
strcat(rheader,"Host:");
strcat(rheader,host->h_name);
strcat(rheader,"\r\n"); //strcat(rheader,"Accept:*\/*");
//strcat(rheader,"\r\n");
strcat(rheader,"Connection:Keep-Alive");
strcat(rheader,"\r\n");
write(sc, rheader, strlen(rheader));usleep();
bytes = read(sc, resbuf, LINE);
printf("Response from %s:\n",ip);
write(STDOUT_FILENO, resbuf, bytes);
for(i=;i<;i++){
state[i]=resbuf[i+];
}
if(!((state>="" && state<="")||state=="")){
strcat(manager,"http://");
strcat(manager,host->h_name);
strcat(manager,arr[i]);
strcat(manager,"\r\n");
write(fd,manager,sizeof(manager));
}
}
close(sc);
ip = nip(ip);
}while(strcmp(ip,eip)<); close(fd);
return ;
}
用c写了个后台扫描的更多相关文章
- Python 网站后台扫描脚本
Python 网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...
- 网站后台扫描工具dirbuster、御剑的用法
dirbuster DirBuster是Owasp(Open Web Application Security Project )开发的一款专门用于探测网站目录和文件(包括隐藏文件)的工具.由于使用J ...
- Python 网站后台扫描
title date layout tags Python 网站后台扫描 2018-05-08 post Python #!/usr/bin/python # This was written for ...
- Vue2.0 + ElementUI 手写权限管理系统后台模板(一)——简述
挤一下: 一开始以为没有多少人用就没建群,但是加我的人太多了,好多问题都是重复的,所以建个群大家互相沟通交流方便点,但是建的有点晚,错过了好多人所以群里人有点少,QQ群: 157216616 小提示 ...
- python 写的http后台弱口令爆破工具
今天来弄一个后台破解的Python小程序,哈哈,直接上代码吧,都有注释~~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- [开源]如何使用goapp写你的后台管理系统_golang
简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...
- c#写一个网站后台扫描器
主要分成了那么几个步骤: 1.HTTP状态码 2.字典的导入 3.显示在listview控件当中 第一步: 先来实现HTTP状态码200的判断 try { req = (HttpWebRequest) ...
- 第一个Asp.net小项目,主页写了下后台代码
一个比较完善的登录模块,就目前的知识范围来说应该算是完美的. 涉及到:cookies,Session,验证码等知识面 Cookies存放一组值: HttpCookie cook = new HttpC ...
- vue elementui 写的一个后台管理页面模板
https://github.com/PanJiaChen/vue-element-admin
随机推荐
- UNIX网络编程读书笔记:辅助数据
辅助数据(ancillary data)可通过调用sendmsg和recvmsg这两个函数,使用msghdr结构中的msg_control和msg_controllen这两个成员发送和接收. 辅助数据 ...
- 算法笔记_211:第七届蓝桥杯软件类决赛部分真题(Java语言A组)
目录 1 阶乘位数 2 凑平方数 3 棋子换位 4 机器人塔 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:10110001001 ...
- Gulp构建前端自动化工作流之:常用插件介绍及使用
在对Gulp有了一个初步的了解之后,我们开始构建一个较为完整的Gulp开发环境. 本文主要分为6个段落: 1. 构建项目目录结构(Directory Structure Build) 2. 插件介绍及 ...
- 解决运行Maven是报错:No goals have been specified for this build
pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可
- logging日志管理--将日志打印在屏幕上
# -*- coding: cp936 -*- # test.py #http://blog.chinaunix.net/uid-27571599-id-3492860.html #logging日志 ...
- iOS- 快速实现展示布局
概述 比较有规律的页面, 快速实现展示布局, 提高开发效率. 详细 代码下载:http://www.demodashi.com/demo/10713.html 看到这个界面,是不是觉得不像那种比较有规 ...
- LeetCode(35):Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...
- 原创:微信小程序调用PHP后台接口,解析纯html文本
---效果图片预览--- 1.微信js动态传参:wx.request({ url: 'https://m.****.com/index.php/Home/Xiaoxxf/activ ...
- HTML:减少页面加载时间的方法
1. 重复的HTTP请求数量应尽量减少 (1)减少调用其他页面.文件的数量. (2)在使用css格式时,常会采用background载入图形文件,而每个background的图像都会产生1次HTTP ...
- python学习笔记——多进程一 基础概念
1 进程 进程:程序的一次(从开始到结束)执行过程,属于一个动态过程.是系统进行资源分配和调度的基本单位. 程序:指的是一个文件,磁盘中可执行的代码.属于一个静态文件 注:进程运行时需要把程序加载如内 ...