🏘️个人主页: 点燃银河尽头的篝火(●’◡’●)
如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
【信息收集】python脚本筛选存活域名
以下是脚本搭建步骤:
1. 导入requests库:用于发送HTTP请求。
import requests
2. 读取子域名列表:
使用with语句和open函数以只读模式(“r”)打开一个名为baidu.com子域名列表_Layer.txt的文件,并将文件的所有行读取到列表a中。
with open("baidu.com子域名列表_Layer.txt", "r") as ff:
a = ff.readlines()
3. 清理列表中的换行符:
通过列表推导式,遍历列表a中的每个元素(每个元素代表文件中的一行,包含末尾的换行符),使用replace方法去除每个元素末尾的换行符(“\n”),并将结果存储在新列表cleaned_list中。
cleaned_list = [item.replace("\n", "") for item in a]
4. 打印清理后列表的长度:
打印出清理后的子域名列表(cleaned_list)的长度,即子域名的数量。
print(len(cleaned_list))
5. 遍历子域名列表并尝试访问:
初始化一个空列表s用于存储成功访问的子域名URL,以及一个计数器u用于记录成功访问的数量。然后,遍历cleaned_list中的每个子域名。对于每个子域名,尝试通过requests.get发送HTTP GET请求,并设置超时时间为2秒。如果请求成功且返回状态码为200,则将该子域名的URL添加到列表s中,并增加计数器u的值。如果在请求过程中发生任何异常(如网络问题、DNS解析失败、超时等),则打印’xx’。
python
s = []
u = 0
for i in range(len(cleaned_list)):
try:
ull = cleaned_list[i]
g = requests.get(f"http://{ull}", timeout=2)
if g.status_code == 200:
s.append(f"http://{ull}")
u += 1
except:
print('xx')
6. 将成功访问的子域名写入新文件:
python
with open("xx.txt", "w") as ss:
for i in range(len(s)):
ss.write(f"{s[i]}\n")
7. 总结
这段代码主要目的是从一个包含子域名列表的文本文件中读取子域名,然后尝试通过HTTP GET请求访问这些子域名。如果某个子域名对应的网站返回了200状态码(即成功响应),则将该子域名的URL添加到结果列表中。最后,将所有成功访问的子域名URL写入到一个新的文本文件中。