【信息收集】用python判断目标地址是否使用CDN(三)


前言

CDN(内容分发网络)原理:就是将内容缓存在终端用户附近。
具体来说,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。


一、利用nslookup判断是否存在cdn

def isCDN(domain):  # 判断目标是否存在CDN
    parm = 'nslookup ' + domain
    result = os.popen(parm).read()
    if result.count(".") > 8:   # nslookup [ip]的返回结果中,多于8个.代表返回多于1一个ip,即存在cdn
        print(domain + " 存在CDN")
    else:
        print(domain + " 不存在CDN")

if __name__ == '__main__':
    isCDN("jd.com")

返回结果:
在这里插入图片描述
原理:通过nslookup方法查询DNS的记录,若存在多条不同IP,则使用了CDN加速。

二、使用socket.getaddrinfo(host,port)获取网站的IP

def get_CDNlist(domain):  # 获取域名解析出的IP列表
    ip_list = []
    number = 0
    try:
        addrs = socket.getaddrinfo(domain, 'http')
        for item in addrs:
            # print(item)
            if item[4][0] not in ip_list:
                ip_list.append(item[4][0])
                number += 1
    except Exception as e:
        print(str(e))

    if number > 1:  # getaddrinfo的返回结果中,多于一个ip,即存在cdn
        print('存在cdn')
    return ip_list

if __name__ == '__main__':
    print(get_CDNlist("jd.com"))

返回结果:
在这里插入图片描述
原理:使用socket.getaddrinfo(host,port)这种方式去获取网站的IP,如果目标站点使用了CDN的话,那么getaddrinfo就会返回多个IP。利用返回的IP数量来进行判断。

三、其他方法

站长之家多地ping : 若异地ping出相同IP,则未使用CDN;否则使用。
在这里插入图片描述

同时本地ping出不同IP:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微雨停了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值