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 15 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php Session无效分析资料整理
Nov 29 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
php上传后台无法收到数据解决方法
Oct 28 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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基础知识:控制结构
2006/12/13 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
JavaScipt中栈的实现方法
2016/02/17 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Python基于百度云文字识别API
2018/12/13 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Python调用飞书发送消息的示例
2020/11/10 Python
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
护理专业求职信
2014/06/15 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
校长新学期致辞
2015/07/30 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers