练习:c段ip探测
任务
给2个c段,
要求判断他们每个ip上面的80-443-8080-8888端口上面是否部署web服务,
如果ip+端口上面有存活的网站,就把这个网址写文本保存
分析
c段就是1-255,可以用for循环;每个ip上面的80、443、8080、8888可以做成列表,看是否有web就是判断状态码是否为200,存活的话就写入文本
通过分析我们可以做成3个方法来实现
第一个方法:做个3层循环来拼接url,一层c段ip,二层为1-255,三层为端口;
第二个方法:把拼接好的url做判断,也就是状态码为200的给存到一个列表里面
第三个方法:做个文件写入方法,把第二个方法筛选出来的url的首页内容写入文本里
第一个方法
#拼接url
def urls(c,port):
urls = []
for i in c:
a = i[0:-4]
for j in range(1,255):
for k in port:
urls.append('http://' + a + str(j) + ':' +str(k))
urls.append('https://' + a + str(j) + ':' +str(k))
return urls
第二个方法
#判断存活
def url(urls):
url2 = []
for i in urls:
try:
if requests.get(i,timeout=0.1).status_code == 200:
print('网站:'+i+'存活,正在写入文本中')
url2.append(i)
except:
pass
return url2
第三个方法
#写入
def xr(url):
with open('text.txt', 'a+', encoding='utf-8') as a:
for i in url:
a.writelines(i+'\n')
print('全部写入成功')
总体代码
# 给2个c段
# 要求判断他们每个ip上面的80-443-8080-8888端口上面是否部署web服务,如果ip+端口上面有存活的网站,就把这个网址写文本保存
import requests
#拼接url
def urls(c,port):
urls = []
for i in c:
a = i[0:-4]
for j in range(1,255):
for k in port:
urls.append('http://' + a + str(j) + ':' +str(k))
urls.append('https://' + a + str(j) + ':' +str(k))
return urls
#判断存活
def url(urls):
url2 = []
for i in urls:
try:
if requests.get(i,timeout=0.1).status_code == 200:
print('网站:'+i+'存活,正在写入文本中')
url2.append(i)
except:
pass
return url2
#写入
def xr(url):
with open('text.txt', 'a+', encoding='utf-8') as a:
for i in url:
a.writelines(i+'\n')
print('全部写入成功')
c = ['0.0.0.0/24']
port = [80,443,8080,8888]
a = urls(c,port)
b = url(a)
xr(b)

浙公网安备 33010602011771号