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图片上传类带图片显示
Nov 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP借助phpmailer发送邮件
May 11 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
php session的应用详细介绍
Mar 22 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
PHP程序守护进程化实现方法详解
Jul 16 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生成网页快照 不用COM不用扩展.
2010/02/11 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
js密码强度校验
2015/11/10 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
react 创建单例组件的方法
2018/04/26 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
编写Python的web框架中的Model的教程
2015/04/29 Python
Python作用域用法实例详解
2016/03/15 Python
从0开始的Python学习016异常
2019/04/08 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
经典c++面试题三
2015/07/08 面试题
技术总监个人的自我评价范文
2013/12/18 职场文书
关于青春的演讲稿
2014/05/05 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
五一晚会主持词
2015/07/01 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书