记录一次无聊的爬虫练习


爬虫的话以前一直尝试使用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终端下表格输出
BeautifulSoup4BS4爬虫框架 用于信息提取清洗

接口

云溪接口

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 开启的比较多,如果开启 SS L的话还可以利用 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 |
+---------------------------+-----------------+

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面用以感谢支持我的朋友,详情请看 打赏列表 | 国光


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