【妙】IP,域名,爬虫,这三个关键词之间的微关系

举报
梦想橡皮擦 发表于 2023/01/25 17:50:43 2023/01/25
【摘要】 你在编程的学习过程中,碰到问题了么?来看看这篇博客能否解决吧! ⛳️ 实战场景在公司编写代码的时候,会碰到这样的情况,需要检查某域名解析的目标服务器 IP,即通过域名查询其服务器地址。在此基础上,还需要查询对应 IP 是否绑定其它站点。为了便于分析,我们需要将解析到目标服务器的域名采集到本地。重新梳理一下需求:通过域名获取服务器 IP,使用 ping 直接实现;通过服务器 IP 获取解析到该...

你在编程的学习过程中,碰到问题了么?来看看这篇博客能否解决吧!

⛳️ 实战场景

在公司编写代码的时候,会碰到这样的情况,需要检查某域名解析的目标服务器 IP,即通过域名查询其服务器地址。
在此基础上,还需要查询对应 IP 是否绑定其它站点。

为了便于分析,我们需要将解析到目标服务器的域名采集到本地。

重新梳理一下需求:

  1. 通过域名获取服务器 IP,使用 ping 直接实现;
  2. 通过服务器 IP 获取解析到该 IP 的站点域名,通过第三方站点实现;
  3. 下载域名保存到本地,通过 requests 模块实现。

⛳️ 第一步:通过域名获取 IP

该步骤非常简单,使用控制台即可实现,命令如下所示:

ping meituan.com

命令运行结果如下,记录该 IP 值。

⛳️ 第二步:查询 IP 绑定哪些域名

本步骤需要用到第三方工具,常用的站点有如下三个:

# IP反查绑定域名的站点
site.ip138.com
ipchaxun.com
dns.aizhan.com

参考下图输入前文得到的 IP 信息,可以查询到本 IP 绑定过的域名清单。

接下来的任务就进入编码环节了,使用 requests 模块请求站点,并采集数据。

⛳️ 第三步:采集域名清单

模块安装不做过多说明,直接进行编码实践,对目标页面进行简单分析,尝试获取接口。
多次测试找到如下接口信息。

记录如下内容:

循环终止的条件通过对比数据得出。
成功

{"status":true,"code":21000,"msg":"\u8fd4\u56de\u6210\u529f","data":[{"domain":"bazhong.meituan.com","addtime":"20190814","uptime":"20220716"},……]}

失败

{"status":true,"code":21000,"msg":"\u8fd4\u56de\u6210\u529f"}

成功与失败的返回结果差异在 data 参数值中。

基于上述整理,编码如下:

import time

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
    "Host": "site.ip138.com",
    "Referer": "https://site.ip138.com/101.236.12.4/"}


def get_domain(url):
    res = requests.get(url, headers=headers)
    print(res.text)
    return res.json()


if __name__ == '__main__':
    page = 0
    while True:
        page += 1
        base_url = f'https://site.ip138.com/index/querybyip/?ip=101.236.12.4&page={page}&token=可以直接复制接口中的数据'
        print("正在采集",base_url)
        data = get_domain(base_url)
        if "data" not in data:
            break
        time.sleep(3)

代码运行之后,即可获取最终结果。

接下来的事情就交给大家独立完成了,需要将采集的 JSON 数据通过 Python 对应模块,保存到数据库或者本地文件中。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 734 篇原创博客

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。