九月资源网-不以盈利为目的,仅仅为个人学习、研究或者欣赏。若未注明来源,请联系添加。如果侵犯到您的版权,请联系删除相关文章。

网站TDK扫描器加IP显示,堪称做网站的救星!

技术类 Thor 来源:52破解-小奥2014 1个月前 (11-03) 42次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

介绍

这是一个Python脚本,用于网站TDK的扫描的利器,还有IP显示的小功能,如果想要一些网站的TDK 信息,不妨可以试试看。
Python脚本

使用方法

使用方法也很简单,请将py文件和url.txt保存在一个文件夹即可,会生成xlsx的报告文件
使用步骤

效果

网站TDK扫描
导出的xlsx表格

代码

# -*- coding:utf-8 -*-
import re
import os
import requests
import yagmail
import urllib3
import logging
from concurrent.futures import ThreadPoolExecutor
import time
import threading
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import xlwt
import xlrd
import socket
from xlutils.copy import copy
 
 
#获取状态码、标题
header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    }
 
 
def get_ip(url):
    url = url.strip('\n').replace('http://','')
    myaddr = socket.getaddrinfo(url, 'http')
    return myaddr[0][4][0]
 
def get_codetitle(url):
    code = "无法访问"
    title = " "
    resurl = " "
    try:
        urllib3.disable_warnings()
        requests.adapters.DEFAULT_RETRIES = 5
        res = requests.get(url, headers=header, verify=False, allow_redirects=True, timeout=(3,12))
        res.encoding = res.apparent_encoding
        code = res.status_code
        title = re.findall(r"(?<=\<title\>)(?:.|\n)+?(?=\<)", res.text, re.IGNORECASE)[0].strip()
        description = re.findall(r"(?<=\<meta name=\"description\" content=\")(?:.|\n)+?(?=\" \/\>|\"\/\>)", res.text, re.IGNORECASE)[0].strip()
        keywords = re.findall(r"(?<=\<meta name=\"keywords\" content=\")(?:.|\n)+?(?=\" \/\>|\"\/\>)", res.text, re.IGNORECASE)[0].strip()
        resurl = res.url
    except Exception as error:
        print('%s网址无效或者IP被封锁'%(url))
     
    try:
        ip = get_ip(url)
    except:
        ip = 'null'
 
    return resurl,code,title,description,keywords,ip
 
 
def write(url):
    codetitle = get_codetitle(url)
    resurl=str(codetitle[0])
    code=str(codetitle[1])
    title=str(codetitle[2])
    description=str(codetitle[3])
    keywords=str(codetitle[4])
    ip=str(codetitle[5])
    print(url+ "|" +code+ "|" +title+  "|" +ip)
    with lock:
        word_book = xlrd.open_workbook(path+savefilename+'.xls')    
        sheets = word_book.sheet_names()
        work_sheet = word_book.sheet_by_name(sheets[0])
        old_rows = work_sheet.nrows
        heads = work_sheet.row_values(0)
        new_work_book = copy(word_book)
        new_sheet = new_work_book.get_sheet(0)
        i = old_rows
        new_sheet.write(i, 0, url)
        new_sheet.write(i, 1, resurl)
        new_sheet.write(i, 2, code)
        new_sheet.write(i, 3, title)
        new_sheet.write(i, 4, description)
        new_sheet.write(i, 5, keywords)
        new_sheet.write(i, 6, ip)
        new_work_book.save(path + savefilename+'.xls')    
 
 
 
 
n = 0
path = os.getcwd()
logging.captureWarnings(True)
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
start = time.time()
lock = threading.Lock()
savefilename = time.strftime("%Y-%m-%d %H.%M.%S")
myxls=xlwt.Workbook()
sheet1=myxls.add_sheet(u'title',cell_overwrite_ok=True)
sheet1.write(0,0,"源地址")
sheet1.write(0,1,"跳转地址")
sheet1.write(0,2,"状态码")
sheet1.write(0,3,"标题")
sheet1.write(0,4,"描述")
sheet1.write(0,5,"关键词")
sheet1.write(0,6,"IP")
myxls.save(path + savefilename+'.xls')
 
#url.txt中ip:port格式转换成http、https格式,保存到url-run.txt中
 
with open(path + "\\url.txt","r") as f:
    line = f.readlines()
 
with open(path + "\\url-run.txt","w") as f2:
    for i in line:
        i=i.strip('\n')
        if 'http://' not in i:       
            f2.write('http://'+i+'\n')
        else:
            f2.write(i+'\n')
 
#获取url列表
with open(path + '\\url-run.txt', 'r', encoding='utf-8') as f:
    urls_data = [data.strip().strip('\\') for data in f] 
#多线程
with ThreadPoolExecutor(max_workers=100) as executor:
    for urls in urls_data:
        executor.submit(
            write, url=urls
        )
 
end = time.time()
print("总耗时:",end - start,"秒")
 
 
# 发送邮箱提醒
try:
    yag = yagmail.SMTP(user="xxxxxx@163.com", password="密码你的", host='smtp.163.com')#smtp的邮箱和密码
    contents = ['TDK获取时间:%s'%(end - start)] #主要内容
    DDOSD_Sender = f'TDK获取完成通知' #标题
    receiver =["xxxx@qq.com"] # 接受的邮箱  多个邮箱
    yag.send(receiver, DDOSD_Sender, contents) #提交发送
    yag.close() #结束进程
except:
    print('smtp 同个时间发送超过10条或者过期')

成品

文件下载

  文件名称:网站(TDK)扫描器  文件大小:11.97M
  下载声明:资源的部分内容可能来源于网络,侵权联系邮箱shidao144@gmail.com进行删除处理。
  下载地址:123云盘

本文标题:网站TDK扫描器加IP显示,堪称做网站的救星!
若文件有解压密码,默认为:www.sir8.cn
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
如有侵权,请联系邮箱shidao144@gmail.com进行删除处理。
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址