此脚本基于对ip138 爱站 中国站长三个反查域名网站上的信息进行爬取
使用到了fake_useragent模块
安装命令pip3 install fake-useragent
脚本如下:

import re, time, requests
from fake_useragent import UserAgentua = UserAgent()# ip138
headers_ip138 = {'Host': 'site.ip138.com','User-Agent': ua.random,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Accept-Encoding': 'gzip, deflate, br','Referer': 'https://site.ip138.com/'}
# 爱站
headers_aizhan = {'Host': 'dns.aizhan.com','User-Agent': ua.random,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Accept-Encoding': 'gzip, deflate, br','Referer': 'https://dns.aizhan.com/'}
# 中国站长
headers_chinaz = {'Host': 's.tool.chinaz.com','User-Agent': ua.random,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Accept-Encoding': 'gzip, deflate',}  # 站长这边删除了一个refererdef ip138_spider(ip):ip138_url = 'https://site.ip138.com/' + str(ip) + '/'ip138_r = requests.get(url=ip138_url, headers=headers_ip138, timeout=3).textip138_address = re.findall(r"<h3>(.*?)</h3>", ip138_r)   # 归属地# result = re.findall(r"<li>(.*?)</li>", ip138_r)if '<li>暂无结果</li>' in ip138_r:print('[+]ip:{}'.format(ip))print('归属地:{}'.format(ip138_address[0]))print('未查到相关绑定信息!')else:print('[+]ip:{}'.format(ip))print('归属地:{}'.format(ip138_address[0]))result_time = re.findall(r"""class="date">(.*?)</span>""", ip138_r)  # 绑定时间result_site = re.findall(r"""</span><a href="/(.*?)/" target="_blank">""", ip138_r)  # 绑定域名结果print('绑定信息如下:')for i, j in enumerate(result_time):print('{}-----{}'.format(j, result_site[i]))print('-'*25)def chinaz_spider(ip):chinaz_url = 'http://s.tool.chinaz.com/same?s=' + str(ip) + '&page='chinaz_re = requests.get(chinaz_url, headers=headers_chinaz).text# print(chinaz_re)if '没有找到任何站点' in chinaz_re:print('没有找到任何站点')else:chinaz_nums = re.findall(r'''<i class="col-blue02">(.*?)</i>''', chinaz_re)  # 获得一共解析了多少个站点print('[+]一共解析了{}个ip地址'.format(chinaz_nums[0]))if int(chinaz_nums[0]) > 20:pages = (int(chinaz_nums[0]) % 20) + (int(chinaz_nums[0]) // 20)for page in range(1, pages+1):chinaz_page_url = chinaz_url + str(page)# print(chinaz_page_url)chinaz_page_r = requests.get(url=chinaz_page_url, headers=headers_chinaz, timeout=2).text# print(chinaz_page_r)# 取出该ip曾经解析过多少个域名chinaz_domains = re.findall(r'''\'\)\" target=_blank>(.*?)</a>''', chinaz_page_r)# print(chinaz_domains)# print(len(aizhan_domains))for chinaz_domain in chinaz_domains:print(chinaz_domain)time.sleep(0.5)else:chinaz_address = re.findall(r'''\[(.*?)\]</a>''', chinaz_re)  # 获得域名地址print('[+]位于:{}'.format(chinaz_address[0]))chinaz_domains = re.findall(r'''\'\)\" target=_blank>(.*?)</a>''', chinaz_re)# print(chinaz_domains)for chinaz_domain in chinaz_domains:print(chinaz_domain)def aizhan_spider(ip):aizhan_url = 'https://dns.aizhan.com/' + str(ip) + '/'aizhan_r = requests.get(url=aizhan_url, headers=headers_aizhan, timeout=2).text# print(aizhan_r)#  1. 取出该地址的真实地址aizhan_address = re.findall(r'''<strong>(.*?)</strong>''',  aizhan_r)# print(aizhan_address)# <strong>中国浙江</strong>print('[+]归属地:{}'.format(aizhan_address[0]))#  2. 取出该ip的解析过多少个域名aizhan_nums = re.findall(r'''<span class="red">(.*?)</span>''', aizhan_r)print('[+]该ip一共解析了:{}个域名'.format(aizhan_nums[0]))if int(aizhan_nums[0]) > 0:if int(aizhan_nums[0]) > 20:# 计算多少页pages = (int(aizhan_nums[0]) % 20) + (int(aizhan_nums[0]) // 20)# print('该ip一共解析了{}页'.format(pages))for page in range(1, pages+1):aizhan_page_url = aizhan_url + str(page) + '/'# print(aizhan_page_url)aizhan_page_r = requests.get(url=aizhan_page_url, headers=headers_aizhan, timeout=2).text# 取出该ip曾经解析过多少个域名aizhan_domains = re.findall(r'''rel="nofollow" target="_blank">(.*?)</a>''', aizhan_page_r)# print(aizhan_domains)# print(len(aizhan_domains))for aizhan_domain in aizhan_domains:print(aizhan_domain)time.sleep(0.5)else:# 取出该ip曾经解析过多少个域名aizhan_domains = re.findall(r'''rel="nofollow" target="_blank">(.*?)</a>''', aizhan_r)# print(aizhan_domains)# print(len(aizhan_domains))for aizhan_domain in aizhan_domains:print(aizhan_domain)else:print('共有0个域名解析到该IP')if __name__ == '__main__':ip = '220.181.38.148'# ip = '61.136.101.79'ip138_spider(ip)aizhan_spider(ip)chinaz_spider(ip)

来源:B站up主 crowsec

ip反查域名脚本实现相关推荐

  1. IP反查域名的方式方法汇总

    众所周知,通过域名可以查询到网站的ip地址,但是通过ip地址能不能查到域名,这其实也是可以的,今天聚名企服就为大家讲讲IP反查域名的方式方法. 1.已知IP地址查对应的域名 cmd-nslookup ...

  2. 使用python实现IP反查域名

    0x00 趁着暑假的功夫,把python初略的学习一遍,最大的感受就是这个语言是我见过的最最好用的语言.尤其是其强大的类库以及简单的语法. 闲来无事,今天我就记录一下我用python写的一个小的IP反 ...

  3. 同IP反查域名的原理

    同IP反查域名的原理是:一个一个地从搜索引擎收集域名的IP数据,然后通过IP进行分类存储域名信息,最后在查询时调用这些可能已经过时的数据. 转载于:https://www.cnblogs.com/ph ...

  4. ip反查域名的详细信息(多种方法)

    如果你的渗透目标网站是一台虚拟主机,那么通过IP反查到的域名信息往往很有价值,因为一台物理服务器上面可能运行多个虚拟主机,这些虚拟主机具有不同的域名,但通常共用一个IP地址.如果你知道有哪些网站共用这 ...

  5. 分享一个ip反查域名的网站

    http://dns.aizhan.com/ 输入你要反查域名的ip地址,会列出各个域名的访问状态. 转载于:https://blog.51cto.com/xjcf00/1640730

  6. window下利用ip反查域名与利用域名查ip

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一.已知 ...

  7. 通过ip反查域名信息

    一个好的网站每日的访问量可以达到数百人甚至更多,可如果它出现任何一点儿问题,这些访问过的人都可能遭到威胁,这也就是黑客们将网站列为主要入侵或攻击对象的原因了.在黑客对网站进行入侵或攻击之前,首先会执行 ...

  8. java如何通过域名查ip_JAVA实现通过IP反查域名

    package org.util.test.*; import java.net.*; public class InetAddressDemo { public static void main(S ...

  9. 国内外一些ip反查域名的网站

    Domain tools reverse IP: http://www.domaintools.com/reverse-ip/ (需要免费注册) MSN search: http://search.m ...

最新文章

  1. Apache的443端口被占用解决方法
  2. NT系统DOS网络命令记录
  3. PAT_B_1039_Java(20分)
  4. 源码安装NASM,无root权限
  5. python summary writer_tensorflow中summary操作
  6. 使用deeplearning4j训练Doc2Vec(文档向量)
  7. http://blog.sina.com.cn/s/blog_6145ed810102vr8k.html
  8. 编程通用知识 系统编程
  9. 注册Tomcat到Window Service服务
  10. 使用git遇到的问题汇总
  11. 动手学Android之六——布局初步(三)
  12. 杨思卓:黑钻VS蓝石(2)
  13. python数组分成两个和相等的子集_javascript,_动态规划——把一个整数数组分成两个和相等的子集,怎么写,javascript - phpStudy...
  14. 李建忠设计模式之总结
  15. 新手C语言实现判定三角形及其面积运算
  16. adb模拟按键home_【安卓试玩】电脑端adb操作手机或模拟器设备,可自行实现中控功能。 _ 一只鱼插件 - 按键精灵论坛...
  17. GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)
  18. 服务器端配置正方教务系统,手把手带你打造一个教务系统客户端(附源码)
  19. 【cnpm】cnpm私有部署改造黑名单梳理
  20. jQuery中的replaceWith和replaceAll方法

热门文章

  1. Linux中常见软件安装方法及常见管理方法
  2. 【渝粤题库】陕西师范大学200871小学教育学作业(高起专)
  3. CC2640之看门狗
  4. 研一学习生活的总结~
  5. 【Excel 教程系列第 7 篇】多张图片如何居中单元格?
  6. 扡扫机器人_米家扫拖机器人:扫地拖地一把抓,小爱同学不落下
  7. java实现.费诺编码_使用递归算法编写的费诺编码
  8. 楚云飞悼念李云龙之广播
  9. cs6给画笔分组_ps里笔刷怎么分组
  10. android 画布叠加,Android实现图片叠加效果的两种方法