转自个人博客:python之十一行代码实现御剑扫描器功能 - Tron ' blog
代码为两年前所写,现在看来没有使用多线程等各种方法,单纯扫描速度会非常慢
python的强大之处在于其的简洁
今天看了表哥rock以前给推的requests库的文档
看到有status_code此对象方法可以返回响应状态码
requests库自己带了一个方便判断页面是否正常返回的内置状态码查询对象requests.codes.ok
二者配合判断可以实现对页面返回的布尔值判断,可以配合if函数使用
r = requests.get(url+line)
if r.status_code == requests.codes.ok:
然后可以open一个文件写入此url(如果返回200就写入文件当中)
在使用时我们可以先确定一个你要扫的url
打开字典文件将其赋值为一个列表,之后url+line(line为列表循环出的后台路径)使用requests库
字典文件在打开时应注意去掉\n,否则进入列表时还会有\n
详细实现代码应利用.splitlines(),文件对象的.read()可以直接赋值为列表。(python的强大)
fi = open("dict.txt","r")
lines = fi.read().splitlines()
之后可以循环字典文件赋值的列表进行后台扫描(for line in lines)
最后的代码结果为:
import requests
url = "https://blog.tronsafe.cn"
f = open("1.txt","w",encoding = 'utf-8')
fi = open("dict.txt","r")
lines = fi.read().splitlines()
for line in lines:
r = requests.get(url+line)
if r.status_code == requests.codes.ok:
f.write(url+line+'\n')
f.close()
fi.close()