ip反查域名脚本实现
此脚本基于对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反查域名脚本实现相关推荐
- IP反查域名的方式方法汇总
众所周知,通过域名可以查询到网站的ip地址,但是通过ip地址能不能查到域名,这其实也是可以的,今天聚名企服就为大家讲讲IP反查域名的方式方法. 1.已知IP地址查对应的域名 cmd-nslookup ...
- 使用python实现IP反查域名
0x00 趁着暑假的功夫,把python初略的学习一遍,最大的感受就是这个语言是我见过的最最好用的语言.尤其是其强大的类库以及简单的语法. 闲来无事,今天我就记录一下我用python写的一个小的IP反 ...
- 同IP反查域名的原理
同IP反查域名的原理是:一个一个地从搜索引擎收集域名的IP数据,然后通过IP进行分类存储域名信息,最后在查询时调用这些可能已经过时的数据. 转载于:https://www.cnblogs.com/ph ...
- ip反查域名的详细信息(多种方法)
如果你的渗透目标网站是一台虚拟主机,那么通过IP反查到的域名信息往往很有价值,因为一台物理服务器上面可能运行多个虚拟主机,这些虚拟主机具有不同的域名,但通常共用一个IP地址.如果你知道有哪些网站共用这 ...
- 分享一个ip反查域名的网站
http://dns.aizhan.com/ 输入你要反查域名的ip地址,会列出各个域名的访问状态. 转载于:https://blog.51cto.com/xjcf00/1640730
- window下利用ip反查域名与利用域名查ip
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一.已知 ...
- 通过ip反查域名信息
一个好的网站每日的访问量可以达到数百人甚至更多,可如果它出现任何一点儿问题,这些访问过的人都可能遭到威胁,这也就是黑客们将网站列为主要入侵或攻击对象的原因了.在黑客对网站进行入侵或攻击之前,首先会执行 ...
- java如何通过域名查ip_JAVA实现通过IP反查域名
package org.util.test.*; import java.net.*; public class InetAddressDemo { public static void main(S ...
- 国内外一些ip反查域名的网站
Domain tools reverse IP: http://www.domaintools.com/reverse-ip/ (需要免费注册) MSN search: http://search.m ...
最新文章
- Apache的443端口被占用解决方法
- NT系统DOS网络命令记录
- PAT_B_1039_Java(20分)
- 源码安装NASM,无root权限
- python summary writer_tensorflow中summary操作
- 使用deeplearning4j训练Doc2Vec(文档向量)
- http://blog.sina.com.cn/s/blog_6145ed810102vr8k.html
- 编程通用知识 系统编程
- 注册Tomcat到Window Service服务
- 使用git遇到的问题汇总
- 动手学Android之六——布局初步(三)
- 杨思卓:黑钻VS蓝石(2)
- python数组分成两个和相等的子集_javascript,_动态规划——把一个整数数组分成两个和相等的子集,怎么写,javascript - phpStudy...
- 李建忠设计模式之总结
- 新手C语言实现判定三角形及其面积运算
- adb模拟按键home_【安卓试玩】电脑端adb操作手机或模拟器设备,可自行实现中控功能。 _ 一只鱼插件 - 按键精灵论坛...
- GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)
- 服务器端配置正方教务系统,手把手带你打造一个教务系统客户端(附源码)
- 【cnpm】cnpm私有部署改造黑名单梳理
- jQuery中的replaceWith和replaceAll方法