PHP实现的网站目录扫描索引工具


Posted in PHP onSeptember 08, 2016

代码很简单,这里就不多废话了,本代码来至一位网友的投稿,经测试可用

PHP实现的网站目录扫描索引工具

<?php
error_reporting(E_ALL & ~E_NOTICE);
ignore_user_abort();
set_time_limit(0);
if ($_GET['act'] == 'op') {
	$data_url = $_GET['url'] . '/';
	$hz = $_GET['type'];
	list($fw1, $fw2) = explode('-', $_GET['fw']);
	$zs404 = strlen(file_get_contents_curl($data_url . "momaka")) + 200; //404页面字数
	$file_name = $_SERVER["REMOTE_ADDR"] . '_' . mt_rand(1000, 9999999) . '.txt'; //写入的文件名
	setcookie("file_name", $file_name, time() + 3600 * 24 * 7); //写入cookie 方便识别
	for ($i = $fw1;$i <= $fw2;$i++) {
		$name = $data_url . $i . $hz; //curl读取页面
		$data = file_get_contents_curl($name); //判断页面是否有用
		if (strlen($data) > $zs404) {
			$log = $name . ' *yes';
		} else {
			$log = $name . ' no';
		}
		file_put_contents($file_name, $log . PHP_EOL, FILE_APPEND); //写入文件
		if ($_GET['ys']) {
			sleep($_GET['ys']); //遇到防火墙使用延迟扫目录
			
		}
	}
}
if ($_GET['act'] == 'list') {
	$filename = $_COOKIE["file_name"]; //要下载的文件名
	header("Content-Type:application/force-download");
	header("Content-Disposition:attachment;filename=" . $filename);
	readfile($filename);
}
if ($_GET['file_name']) {
	$data = file_get_contents($_COOKIE["file_name"]);
}
/* CURL 配置函数 */
function file_get_contents_curl($url) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
	//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
	$dxycontent = curl_exec($ch);
	return $dxycontent;
}
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ns="http://www.w3.org/1999/xhtml">
<head>
<http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<title>网站目录文件图片扫描工具</title>
<script src="jquery-1.8.3.min.js"></script>
</head>
<style>
body{ margin: 0; padding: 0; background-color: #F9F9F9;}
.list{margin: 0 auto; width: 500px; padding: 30px 0; background-color: #FFF; margin-top: 50px; border-radius: 8px; border: 1px solid #ECECEC;}
.list h1{ text-align: center; font-size: 1.8em; margin: 30px 0;color: #686B82;}
.list input{width: 250px; height: 28px; border-radius: 5px; border: 1px solid #CACACA; margin: 0 0 20px 20px; display: inline-block; padding: 2px 8px;}
input:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);}
#sm{width: 270px; height: 32px; font-size: 16px; background-color: #0DD88D; color: #FFF; border: 0;margin-left: 140px;cursor:pointer;}
.list span{float: left; display: inline-block; width: 120px; text-align: right; line-height: 30px;}
.list a{ text-align: center; display: block; color: #808080; text-decoration: none;}
</style>
<body>
<?php if($data) {?>
<p style="text-align:center;">
	每隔15秒更新一次数据 查找连接后面为 *yes 即可用页面
</p>
<?php echo $data; ?>
<script>function moma(){ history.go(0);}setInterval("moma()",15000);</script>
<?php }else{ ?>
<div class="list">
	<h1>网站目录文件扫描工具</h1>
	<span>链接:</span><input type="text" id="url" placeholder="如https://www.baidu.com" value="">
	<span>后缀:</span><input type="text" id="type" placeholder="如 .html ,目录模式则放空" value="">
	<span>范围:</span><input type="text" id="fw" placeholder="如1-99999或a-zzzzz" value="">
	<span>延迟:</span><input type="text" id="ys" placeholder="遇防火墙请填写轮询时间,如2" value="">
	<input type="submit" id="sm" value="扫描">
	<a href="index.php?file_name=1" target="_blank">查看扫描结果</a></br>
	<a href="index.php?act=list" target="_blank">下载扫描结果</a></br>
</div>
<?php } ?>
<div id="data">
</div>
<script>
$("#sm").click(function(){
	$(this).disabled=true; 
	if(confirm('之前有一个任务可能正在进行,选择确定则新建任务扫描,选择取消则查看任务')){
		$.get("index.php?act=op",
		{
			url : $("#url").val(),
			type : $("#type").val(),
			fw : $("#fw").val(),
			ys : $("#ys").val()
		},
		function(req) {
			alert("扫描结束!");
		});
	}else{
		window.open("index.php?file_name=1");
	}
})
</script>
</body>
</html>

有相同需求的小伙伴可以参考下

PHP 相关文章推荐
新版PHP极大的增强功能和性能
Oct 09 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
CodeIgniter集成smarty的方法详解
May 26 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
浅谈PHP的反射机制
Dec 15 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 #PHP
php添加数据到xml文件的简单例子
Sep 08 #PHP
Yii2中事务的使用实例代码详解
Sep 07 #PHP
PHP模糊查询的实现方法(推荐)
Sep 06 #PHP
浅谈PHP中的数据传输CURL
Sep 06 #PHP
PHP实现页面静态化的超简单方法
Sep 06 #PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 #PHP
You might like
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php引用传值实例详解学习
2013/11/06 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
Angular实现form自动布局
2016/01/28 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
jQuery事件详解
2017/02/23 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
局域网定义和特性
2016/01/23 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
大学生简历中个人的自我评价
2013/10/06 职场文书
广告业务员岗位职责
2014/02/06 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
医院义诊活动总结
2014/07/04 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
交通事故委托书范本
2014/09/28 职场文书
行政主管岗位职责
2015/02/03 职场文书
企业战略合作意向书
2015/05/08 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android