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 8小时时间差的解决方法小结
Dec 22 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
php调用shell的方法
Nov 05 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
分享PHP守护进程类
Dec 30 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 PHP
php模拟实现斗地主发牌
Apr 22 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
function.inc.php超越php
2006/12/09 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
php字符串过滤与替换小结
2015/01/26 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
splice slice区别
2006/10/09 Javascript
javascript第一课
2007/02/27 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
详解jQuery中的事件
2016/12/14 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python中的多线程实例教程
2014/08/27 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python随机函数random()使用方法小结
2018/04/29 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
Python接口测试get请求过程详解
2020/02/28 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
大学毕业生的自我鉴定
2013/11/30 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
鉴定评语大全
2014/05/05 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
高质量“欢迎词”
2019/04/03 职场文书