记录一次无聊的爬虫练习


爬虫的话以前一直尝试使用re通过正则模块去提取信息的,但是有时候正则会遇到一些奇奇怪怪的问题,所以就很有必要来学习一下Beautiful Soup爬虫框架了。

模块

import os
import re
import time
import socket
import requests
import argparse
import progressbar
import prettytable as pt
from bs4 import BeautifulSoup

本脚本基于Python3编写,使用前得安装一下依赖的第三方模块:

pip3 install requests
pip3 install progressbar2
pip3 install prettytable
pip install beautifulsoup4

系统模块

模块 作用
os 程序中断
re 正则提取信息
time 倒计时延时使用
socket 域名解析对应IP
argparse 命令行下的参数模块

第三方模块

模块 作用
requests 发起一次基本的http请求
progressbar2 进度展示使用 提高使用体验
prettytable 终端下表格输出
BeautifulSoup4 BS4爬虫框架 用于信息提取清洗

接口

云溪接口

yunsee_url = 'http://www.yunsee.cn'
api_url = yunsee_url + '/home/getInfo'

web_info = '''type=webinfo&string=d879af585g54df45&url={domain}&_token=DsFJtsh8eUeH28GYRtklTSYzK00vovLoDxuDkWU1'''.format(domain=domain)

web_sub = '''type=websub&string=d879af585g54df45&url={domain}&_token=DsFJtsh8eUeH28GYRtklTSYzK00vovLoDxuDkWU1'''.format(domain=domain)

其中web_info接口是云溪自带的基础信息接口,web_sub是云溪的子域名查询接口,云溪接口的子域名查询很全,弊端就是普通用户的API查询频率不可以过快,经过测试大约在45秒左右可以查询一次。

# 基础信息正则
ip_pattern = re.compile(r'"ip":"(.*?)"')
ip = ip_pattern.findall(web_info_response.text)[0]

idc_pattern = re.compile(r'"idc":"(.*?)"')
idc = idc_pattern.findall(web_info_response.text)[0]

server_pattern = re.compile(r'"server":"(.*?)"')
server = server_pattern.findall(web_info_response.text)[0]

whois_dns_pattern = re.compile(r'"whois_dns":"(.*?)"')
whois_dns = whois_dns_pattern.findall(web_info_response.text)[0]

whois_mail_pattern = re.compile(r'"whois_mail":"(.*?)"')
whois_mail = whois_mail_pattern.findall(web_info_response.text)[0]

whois_isp_pattern  = re.compile(r'"whois_isp":"(.*?)"')
whois_isp = whois_isp_pattern.findall(web_info_response.text)[0]

title_pattern = re.compile(r'"title":"(.*?)"')
title = title_pattern.findall(web_info_response.text)[0]

cdn_pattern = re.compile(r'"cdn":"(.*?)"')
cdn = cdn_pattern.findall(web_info_response.text)[0]

cms_pattern = re.compile(r'"cms":"(.*?)"')
cms = cms_pattern.findall(web_info_response.text)[0]

waf_pattern = re.compile(r'"waf":"(.*?)"')
waf = waf_pattern.findall(web_info_response.text)[0]

# 子域名正则
subs_pattern = re.compile(r'{"domain":"(.*?)"')
subs = subs_pattern.findall(web_sub_response.text)

爱站接口

aizhan_url = "https://www.aizhan.com/seo/{domain}/".format(domain=domain)
aizhan_base = requests.get(url=aizhan_url,headers=aizhan_headers,timeout=6)

爱站的接口这里主要就爬取了SEO权重相关的信息

爬取规则如下:

# 百度权重
baidurank_pattern = re.compile(r'br/(.*?).png')
baidurank = baidurank_pattern.findall(aizhan_base.text)[0]

# 移动权重
baidurank_mbr_pattern = re.compile(r'mbr/(.*?).png')
baidurank_mbr = baidurank_mbr_pattern.findall(aizhan_base.text)[0]

#搜狗权重
sogou_pr_pattern = re.compile(r'sr/(.*?).png')
sogou_pr = sogou_pr_pattern.findall(aizhan_base.text)[0]

shodan接口

shodan_url = "https://www.shodan.io/host/{ip}".format(ip=ip)
shodan_response = requests.get(url=shodan_url,headers=shodan_headers,timeout=15)

shodan物联网搜索引擎,在端口探测这块信息还是比较专业的,这里提取了端口和漏洞检测信息的数据:

# bs4提取端口信息
shodan_soup = BeautifulSoup(shodan_response.text,'html.parser')
ports_soup = shodan_soup.select('.ports a')

# re正则提取漏洞信息
vuls_pattern = re.compile(r'min-width:100px">(.*?)<')
vuls = vuls_pattern.findall(shodan_response.text)

考虑到现在网站SSL开启的比较多,如果开启SSL的话还可以利用SSL反查查询更多子域名相关信息,所以这里还添加了SSL检测的判断:

ssl_soup = shodan_soup.select('.state')
flag = False
tb_ssl = pt.PrettyTable(["SSL是否启用"])
for ssl in ssl_soup:
  if "https" in ssl.string:
    flag = True
  if flag:
      tb_ssl.add_row(["是"])
    else:
        tb_ssl.add_row(["否"])

bs4提取http相关信息,如果里面存在https相关字样的话,说明网站开启了SSL

代码

import os
import re
import time
import socket
import requests
import argparse
import progressbar
import prettytable as pt
from bs4 import BeautifulSoup

def main():
    parser= argparse.ArgumentParser()
    parser.add_argument('-u','--url',dest='url',help="input site's domain")
    args = parser.parse_args()

    if args.url == None:
        parser.print_help()
        os._exit(0)

    return args.url

def yunsee(domain):
    headers = {
        'Host':'www.yunsee.cn',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0',
        'Cookie':'{这里填入你的云溪Cookie 你如果没有云溪账号的话 那就尴尬了}',
        'Content-Type': 'application/x-www-form-urlencoded;'
    }

    yunsee_url = 'http://www.yunsee.cn'
    api_url = yunsee_url + '/home/getInfo'
    web_info = '''type=webinfo&string=d879af585g54df45&url={domain}&_token=DsFJtsh8eUeH28GYRtklTSYzK00vovLoDxuDkWU1'''.format(domain=domain)
    web_sub = '''type=websub&string=d879af585g54df45&url={domain}&_token=DsFJtsh8eUeH28GYRtklTSYzK00vovLoDxuDkWU1'''.format(domain=domain)

    aizhan_headers = {
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36',
        'Content-Type': 'application/x-www-form-urlencoded',
    }

    # 爱站接口
    aizhan_url = "https://www.aizhan.com/seo/{domain}/".format(domain=domain)
    aizhan_base = requests.get(url=aizhan_url,headers=aizhan_headers,timeout=6)

    # 百度权重
    baidurank_pattern = re.compile(r'br/(.*?).png')
    baidurank = baidurank_pattern.findall(aizhan_base.text)[0]

    # 移动权重
    baidurank_mbr_pattern = re.compile(r'mbr/(.*?).png')
    baidurank_mbr = baidurank_mbr_pattern.findall(aizhan_base.text)[0]

    #搜狗权重
    sogou_pr_pattern = re.compile(r'sr/(.*?).png')
    sogou_pr = sogou_pr_pattern.findall(aizhan_base.text)[0]

    try:
        # 基本信息
        web_info_response = requests.post(url=api_url,headers=headers,data=web_info)

        # 子域名信息
        web_sub_response = requests.post(url=api_url,headers=headers,data=web_sub)

        # 基础信息正则
        ip_pattern = re.compile(r'"ip":"(.*?)"')
        ip = ip_pattern.findall(web_info_response.text)[0]

        idc_pattern = re.compile(r'"idc":"(.*?)"')
        idc = idc_pattern.findall(web_info_response.text)[0]

        server_pattern = re.compile(r'"server":"(.*?)"')
        server = server_pattern.findall(web_info_response.text)[0]

        whois_dns_pattern = re.compile(r'"whois_dns":"(.*?)"')
        whois_dns = whois_dns_pattern.findall(web_info_response.text)[0]

        whois_mail_pattern = re.compile(r'"whois_mail":"(.*?)"')
        whois_mail = whois_mail_pattern.findall(web_info_response.text)[0]

        whois_isp_pattern  = re.compile(r'"whois_isp":"(.*?)"')
        whois_isp = whois_isp_pattern.findall(web_info_response.text)[0]

        title_pattern = re.compile(r'"title":"(.*?)"')
        title = title_pattern.findall(web_info_response.text)[0]

        cdn_pattern = re.compile(r'"cdn":"(.*?)"')
        cdn = cdn_pattern.findall(web_info_response.text)[0]

        cms_pattern = re.compile(r'"cms":"(.*?)"')
        cms = cms_pattern.findall(web_info_response.text)[0]

        waf_pattern = re.compile(r'"waf":"(.*?)"')
        waf = waf_pattern.findall(web_info_response.text)[0]

        # 子域名正则
        subs_pattern = re.compile(r'{"domain":"(.*?)"')
        subs = subs_pattern.findall(web_sub_response.text)

        # shodan接口
        shodan_headers = {
            'Host':'www.shodan.io',
            'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36',
            'Content-Type': 'application/x-www-form-urlencoded',
        }
        shodan_url = "https://www.shodan.io/host/{ip}".format(ip=ip)
        shodan_response = requests.get(url=shodan_url,headers=shodan_headers,timeout=15)
        shodan_soup = BeautifulSoup(shodan_response.text,'html.parser')


        ports_soup = shodan_soup.select('.ports a')
        print("\033[0;31m 开放端口 \033[0m")
        for port in ports_soup:
            print("{port}".format(port=str(port.string)),end="\t")

        print("\n")
        print("\033[0;32m 漏洞检测 \033[0m")
        vuls_pattern = re.compile(r'min-width:100px">(.*?)<')
        vuls = vuls_pattern.findall(shodan_response.text)

        tb_vul = pt.PrettyTable(["编号"])
        if vuls:
            for vul in vuls:
                tb_vul.add_row([vul])
        else:
            tb_vul.add_row(["暂未发现漏洞"])

        print(tb_vul)
        print("\n")

        ssl_soup = shodan_soup.select('.state')
        flag = False
        tb_ssl = pt.PrettyTable(["SSL是否启用"])
        for ssl in ssl_soup:
            if "https" in ssl.string:
                flag = True
        if flag:
            tb_ssl.add_row(["是"])
        else:
            tb_ssl.add_row(["否"])

        print(tb_ssl)
        print("\n")

        tb_info = pt.PrettyTable(["域名","IP","IDC","指纹"])
        tb_info.add_row([domain,ip,idc,server])
        print("\033[0;35m 基础信息 \033[0m")
        print(tb_info)
        print("\n")

        tb_seo = pt.PrettyTable(["百度","移动","搜狗"])
        tb_seo.add_row([baidurank,baidurank_mbr,sogou_pr])
        print("\033[0;33m 权重信息 \033[0m")
        print(tb_seo)
        print("\n")

        tb_dns = pt.PrettyTable(["DNS","邮箱","ISP"])
        tb_dns.add_row([whois_dns,whois_mail,whois_isp])
        print("\033[0;34m DNS信息 \033[0m")
        print(tb_dns)
        print("\n")

        tb_sec = pt.PrettyTable(["标题","CDN","CMS","WAF"])
        tb_sec.add_row([title,cdn,cms,waf])
        print("\033[0;35m 进阶信息 \033[0m")
        print(tb_sec)
        print("\n")

        print("\033[0;32m 正在查询子域名相关信息,请稍等... \033[0m\n")
        tb_sub = pt.PrettyTable(["子域名","IP"])
        # 查询子域名IP和归属地
        for sub in subs:
            try:
                ip = socket.gethostbyname(sub)
                tb_sub.add_row([sub,ip])
            except Exception as e:
                tb_sub.add_row([sub,"域名解析异常"])

            progress = int(((subs.index(sub))/(len(subs)))*100)
            print("{progress}%  {subdomain}".format(progress=progress,subdomain=sub),end="\r")

        print(tb_sub)


    except Exception as e:
        print(e)
        print("\033[0;31m 查询频率过高,请过45秒后再查询 \033[0m")
        p = progressbar.ProgressBar()
        for i in p(range(45)):
            time.sleep(1)

if __name__ == "__main__":
    domain = main()

    logo = '''\033[0;32m
                   _        ___      
                  (_)      / __)     
 _ _ _ _ _ _ _ _ _ _ ____ | |__ ___  
| | | | | | | | | | |  _ \|  __) _ \ 
| | | | | | | | | | | | | | | | |_| |
 \____|\____|\____|_|_| |_|_|  \___/ 

    \033[0m'''
    print(logo)
    print("正在查询 {domain} 相关信息,请稍等\n".format(domain=domain))
    yunsee(domain)

用法

此脚本用了云溪的接口,所以你得有云溪账号才可以愉快地使用,用之前替换好自己的Cookie即可:

def yunsee(domain):
    headers = {
        'Host':'www.yunsee.cn',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0',
        'Cookie':'{这里填入你的云溪Cookie 你如果没有云溪账号的话 那就尴尬了}',
        'Content-Type': 'application/x-www-form-urlencoded;'
    }

把上面的Cookie换成自己的Cookie即可,用法很简单:

$ python3 yunsee.py --help
usage: yunsee.py [-h] [-u URL]

optional arguments:
  -h, --help         show this help message and exit
  -u URL, --url URL  input site's domain

效果


云溪在爬取子域名这块还是很强大的,下面的具体的查询效果:

正在查询子域名相关信息,请稍等...

+---------------------------+-----------------+
|           子域名          |        IP       |
+---------------------------+-----------------+
|     metc.njupt.edu.cn     | 202.119.224.202 |
|     skie.njupt.edu.cn     |   域名解析异常  |
|    ciciot.njupt.edu.cn    | 202.119.224.202 |
|      ip.njupt.edu.cn      | 202.119.224.202 |
|  faculty.cs.njupt.edu.cn  |  180.209.64.45  |
|     bwcsn.njupt.edu.cn    | 202.119.224.202 |
|      lib.njupt.edu.cn     | 202.119.224.202 |
|      bc.njupt.edu.cn      | 202.119.224.202 |
|    nerccn.njupt.edu.cn    | 202.119.224.202 |
|     zcgs.njupt.edu.cn     | 202.119.224.202 |
|      edu.njupt.edu.cn     | 202.119.224.202 |
|      yjs.njupt.edu.cn     | 202.119.226.177 |
|      cm.njupt.edu.cn      | 202.119.224.202 |
|      3s.njupt.edu.cn      | 202.119.224.202 |
|     youth.njupt.edu.cn    | 202.119.224.202 |
|     xq70.njupt.edu.cn     | 202.119.224.202 |
|     jgdw.njupt.edu.cn     | 202.119.224.202 |
|     solab.njupt.edu.cn    | 202.119.224.202 |
|      dwb.njupt.edu.cn     |   域名解析异常  |
|     rflab.njupt.edu.cn    |  180.209.64.25  |
|     jsfz.njupt.edu.cn     | 202.119.224.202 |
|      pay.njupt.edu.cn     | 202.119.226.204 |
|     nysk.njupt.edu.cn     |  180.209.98.38  |
| cybersec2017.njupt.edu.cn |   域名解析异常  |
|      zbb.njupt.edu.cn     |  180.209.98.61  |
|      stu.njupt.edu.cn     |  180.209.97.28  |
|     sast.njupt.edu.cn     |  180.209.98.77  |
|      zs.njupt.edu.cn      | 202.119.224.202 |
|      xcb.njupt.edu.cn     | 202.119.224.202 |
|      xsc.njupt.edu.cn     | 202.119.224.202 |
|    xsswzx.njupt.edu.cn    |   域名解析异常  |
|      kyy.njupt.edu.cn     | 202.119.224.202 |
|   idssrv01.njupt.edu.cn   |  202.119.226.99 |
|      jwc.njupt.edu.cn     | 202.119.224.202 |
|      rs.njupt.edu.cn      | 202.119.226.177 |
|     nyzr.njupt.edu.cn     |  180.209.98.46  |
|     jxcg.njupt.edu.cn     | 202.119.224.202 |
|     fzghc.njupt.edu.cn    | 202.119.224.202 |
|     xsgl.njupt.edu.cn     |  180.209.97.28  |
|      ipr.njupt.edu.cn     | 202.119.224.202 |
|      ict.njupt.edu.cn     | 202.119.224.202 |
|     nykjy.njupt.edu.cn    | 202.119.224.202 |
|      shs.njupt.edu.cn     | 202.119.224.202 |
|     paxy.njupt.edu.cn     |   域名解析异常  |
|    mirrors.njupt.edu.cn   |  180.209.98.28  |
|      mba.njupt.edu.cn     | 202.119.224.202 |
|   shijiuda.njupt.edu.cn   | 202.119.224.202 |
|      xb.njupt.edu.cn      | 202.119.224.202 |
|     cicic.njupt.edu.cn    | 202.119.224.202 |
|    gonghui.njupt.edu.cn   | 202.119.224.202 |
|      su.njupt.edu.cn      | 202.119.224.202 |
|     xjjs.njupt.edu.cn     | 202.119.224.202 |
|     ciot.njupt.edu.cn     | 202.119.224.202 |
|   overseas.njupt.edu.cn   | 202.119.224.202 |
|      gjs.njupt.edu.cn     | 202.119.224.202 |
|      zx.njupt.edu.cn      |  180.209.98.77  |
|     mdis.njupt.edu.cn     | 202.119.224.202 |
|      tu.njupt.edu.cn      | 202.119.224.202 |
|      bis.njupt.edu.cn     |   域名解析异常  |
|       c.njupt.edu.cn      |  180.209.98.122 |
|     lrme.njupt.edu.cn     | 202.119.224.202 |
|    iotlab.njupt.edu.cn    | 202.119.224.202 |
|      ky.njupt.edu.cn      |   域名解析异常  |
|   main.jjy.njupt.edu.cn   |   域名解析异常  |
|      rsc.njupt.edu.cn     | 202.119.224.202 |
|     news.njupt.edu.cn     | 202.119.224.202 |
|      my.njupt.edu.cn      | 202.119.226.237 |
|      job.njupt.edu.cn     |   域名解析异常  |
|      ygb.njupt.edu.cn     | 202.119.224.202 |
|     blog.njupt.edu.cn     |   域名解析异常  |
|      au.njupt.edu.cn      |   域名解析异常  |
|   rima-lab.njupt.edu.cn   |  180.209.64.59  |
|     gdgc.njupt.edu.cn     | 202.119.224.202 |
|     cclab.njupt.edu.cn    |   180.209.64.7  |
|     jxzx.njupt.edu.cn     | 202.119.224.202 |
|      qh.njupt.edu.cn      |   域名解析异常  |
|     lhbgs.njupt.edu.cn    | 202.119.224.202 |
|      cwc.njupt.edu.cn     | 202.119.224.202 |
|      bbs.njupt.edu.cn     |  202.119.224.80 |
|      xl.njupt.edu.cn      | 202.119.224.202 |
|     iids.njupt.edu.cn     | 202.119.224.202 |
|     syssh.njupt.edu.cn    | 202.119.224.202 |
|     jwxt.njupt.edu.cn     |  202.119.225.34 |
|      dag.njupt.edu.cn     | 202.119.224.202 |
|    edulab.njupt.edu.cn    | 202.119.224.202 |
|      acm.njupt.edu.cn     |  180.209.96.50  |
|    coalab.njupt.edu.cn    |  180.209.64.17  |
|     ids6.njupt.edu.cn     | 202.119.226.204 |
|     zscx.njupt.edu.cn     | 202.119.224.101 |
|      iam.njupt.edu.cn     | 202.119.224.202 |
|     jjxy.njupt.edu.cn     | 202.119.224.202 |
|     mydzz.njupt.edu.cn    | 202.119.224.202 |
|      eoe.njupt.edu.cn     | 202.119.224.202 |
|    jjycjcx.njupt.edu.cn   |  202.119.236.90 |
|     eelab.njupt.edu.cn    | 202.119.224.202 |
|     jfiot.njupt.edu.cn    |   域名解析异常  |
|      kj.njupt.edu.cn      | 202.119.226.204 |
|    gdgcsys.njupt.edu.cn   | 202.119.224.202 |
|      yzb.njupt.edu.cn     | 202.119.224.202 |
|      lxy.njupt.edu.cn     | 202.119.224.202 |
|     pigai.njupt.edu.cn    |  180.209.64.13  |
|      wcd.njupt.edu.cn     | 202.119.224.202 |
|      txg.njupt.edu.cn     | 202.119.224.202 |
|    eselab.njupt.edu.cn    |  180.209.64.25  |
|      bwc.njupt.edu.cn     | 202.119.224.202 |
|    kaoyan.njupt.edu.cn    | 202.119.236.119 |
|      skc.njupt.edu.cn     |   域名解析异常  |
|     jwc1.njupt.edu.cn     |   域名解析异常  |
|     dzkx.njupt.edu.cn     | 202.119.224.202 |
|     simp.njupt.edu.cn     | 202.119.224.202 |
|     ladzz.njupt.edu.cn    | 202.119.224.202 |
|      xxb.njupt.edu.cn     | 202.119.224.202 |
|      jnb.njupt.edu.cn     | 202.119.224.202 |
|      fld.njupt.edu.cn     | 202.119.224.202 |
|      lab.njupt.edu.cn     | 202.119.224.202 |
|     ntyjy.njupt.edu.cn    | 202.119.224.202 |
|     sxsy.njupt.edu.cn     |  180.209.64.29  |
|      dx.njupt.edu.cn      | 202.119.224.202 |
|     ydxy.njupt.edu.cn     |  202.119.225.55 |
|    pgyouth.njupt.edu.cn   | 202.119.224.202 |
|   iske2017.njupt.edu.cn   |   域名解析异常  |
|     wicom.njupt.edu.cn    | 202.119.224.202 |
|      iot.njupt.edu.cn     | 202.119.224.202 |
|      ccs.njupt.edu.cn     |   域名解析异常  |
|     bdsip.njupt.edu.cn    | 202.119.224.202 |
|     cwcxx.njupt.edu.cn    | 202.119.226.204 |
|      sjc.njupt.edu.cn     | 202.119.224.202 |
|      hqc.njupt.edu.cn     | 202.119.224.202 |
|      www.njupt.edu.cn     | 202.119.224.201 |
|     oelab.njupt.edu.cn    | 202.119.224.202 |
|      ac.njupt.edu.cn      | 202.119.224.202 |
|      pg.njupt.edu.cn      | 202.119.224.202 |
|      lx.njupt.edu.cn      |   域名解析异常  |
|     ctie.njupt.edu.cn     | 202.119.224.202 |
|     tdxy.njupt.edu.cn     |   域名解析异常  |
|      zzb.njupt.edu.cn     | 202.119.224.202 |
|      cs.njupt.edu.cn      | 202.119.224.202 |
|     class.njupt.edu.cn    | 202.119.226.204 |
|      xyh.njupt.edu.cn     | 202.119.224.202 |
|      gfs.njupt.edu.cn     | 202.119.224.202 |
|     bclab.njupt.edu.cn    | 202.119.224.202 |
|      rwy.njupt.edu.cn     | 202.119.224.202 |
|  ciot.wicom.njupt.edu.cn  | 202.119.224.202 |
|     email.njupt.edu.cn    |  202.119.224.11 |
|     pgrc.njupt.edu.cn     | 202.119.224.202 |
|   idssrv02.njupt.edu.cn   | 202.119.226.100 |
|     xyzd.njupt.edu.cn     | 202.119.224.202 |
|    marxism.njupt.edu.cn   | 202.119.224.202 |
|      kjc.njupt.edu.cn     |   域名解析异常  |
|     mail.njupt.edu.cn     |  202.119.224.11 |
|      coa.njupt.edu.cn     | 202.119.224.202 |
|      qks.njupt.edu.cn     | 202.119.224.202 |
|      tzb.njupt.edu.cn     | 202.119.224.202 |
|      mcm.njupt.edu.cn     | 202.119.224.202 |
|    sicoeid.njupt.edu.cn   | 202.119.224.202 |
|      jjy.njupt.edu.cn     | 202.119.224.202 |
|   ycbigdata.njupt.edu.cn  | 202.119.224.202 |
|     txlab.njupt.edu.cn    | 202.119.224.202 |
|   zccx.tyb.njupt.edu.cn   | 202.119.224.193 |
|      jw.njupt.edu.cn      | 202.119.224.202 |
|      em.njupt.edu.cn      |  202.119.224.11 |
|      dns.njupt.edu.cn     |  202.119.230.8  |
|      vpn.njupt.edu.cn     |  218.2.103.165  |
| autodiscover.njupt.edu.cn |  42.159.161.152 |
|     ddh3.njupt.edu.cn     | 202.119.224.202 |
|      sip.njupt.edu.cn     |   42.159.34.46  |
|      ns.njupt.edu.cn      |  202.119.230.10 |
|      yw.njupt.edu.cn      |   10.22.190.9   |
|    portal.njupt.edu.cn    | 202.119.226.177 |
|    summer.njupt.edu.cn    |  180.209.98.40  |
|     tour.njupt.edu.cn     |  180.209.98.69  |
|      cc.njupt.edu.cn      | 202.119.224.202 |
|     data.njupt.edu.cn     | 202.119.226.204 |
|      ykt.njupt.edu.cn     |  202.119.226.89 |
|     admin.njupt.edu.cn    |  202.119.224.70 |
|    wechat.njupt.edu.cn    |  180.209.97.92  |
|     xcbgs.njupt.edu.cn    | 202.119.224.202 |
|     msoid.njupt.edu.cn    |  42.159.233.91  |
|    campus.njupt.edu.cn    |   180.209.64.8  |
|    ctielab.njupt.edu.cn   |  180.209.96.19  |
|     zcyjs.njupt.edu.cn    |   域名解析异常  |
|     cloud.njupt.edu.cn    |   10.22.242.2   |
|     home.njupt.edu.cn     |  180.209.97.41  |
| lyncdiscover.njupt.edu.cn |   42.159.34.45  |
|     airb.njupt.edu.cn     | 202.119.224.202 |
|   software.njupt.edu.cn   |  202.119.224.18 |
|    kloeid.njupt.edu.cn    | 202.119.224.202 |
+---------------------------+-----------------+

文章作者: 国光
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 国光 !
 上一篇
Python循环输出各种图案 Python循环输出各种图案
以前水过一篇C语言输出各种 * 号组成的图像的相关文章,今天用Python来实现发现更加简单灵活,特此写文章记录一下。 前言以前水的一篇文章:C语言循环输出各种 * 组成的图形 今天用Python去复现,发现可以更加简单高效,就顺便再
2019-11-17
下一篇 
macOS下如何优雅的实用Burp Suite macOS下如何优雅的实用Burp Suite
众所周知国内我们使用的Burp Suite大多数是大佬们分享出来的专业破解版的Burp Suite,每次启动的时候都得通过加载器来启动Burp Suite,那有没有更加优雅的方式呢?下面就开始水这一篇文章了,告诉大家如何配置基本的渗透测
2019-11-06
  目录