使用python实现IP反查域名
0x00
趁着暑假的功夫,把python初略的学习一遍,最大的感受就是这个语言是我见过的最最好用的语言。尤其是其强大的类库以及简单的语法。
闲来无事,今天我就记录一下我用python写的一个小的IP反查域名的工具。
IP反查就是通过IP地址反向查询出绑定在这个IP上的所有的域名信息(一台服务器可以有多个虚拟主机)。
0x01
思路就是使用网络上的IP反查域名的网站,这里我用的是http://dns.aizhan.com/。通过爬虫将查询结果从网页上提取出来,最后输出到一个html文件中。
使用也很方便,比如你要查询的IP地址是10.10.10.10,那么就提交:http://dns.aizhan.com/?q=10.10.10.10即可。
但是,查询结果不是直接返回,而是使用Ajax动态获取的。这时用firebug找到对应的接口就行了。
第一个url是拿到一个总的查询结果(json),其他的url都是获取域名的title。这样,所要做的只有两个事儿:
第一是从json中提取出本页所有的url
第二是根据url的列表找出每个url对应的title
上图就是一个域名对应一个title,只需将这两个信息作为数据元即可。
0x03
有了以上的分析基础,就可以直接看我的代码了。
#coding=utf-8
'''
IP反查小工具
http://dns.aizhan.com/index.php?r=index/domains&ip=202.203.208.8&page=1&_=1408264478284'''
import requests,json,urllib,sys,os
from bs4 import BeautifulSoup#获取页面内容
def getPage(ip,page):r = requests.get("http://dns.aizhan.com/index.php?r=index/domains&ip=%s&page=%d" % (ip,page))return r#获取最大的页数
def getMaxPage(ip):r = getPage(ip,1)json_data = {}json_data = r.json()maxcount = json_data[u'conut']maxpage = int(int(maxcount)/20) + 1 return maxpage#获取域名列表
def getDomainsList(ip):maxpage = getMaxPage(ip)result = []for x in xrange(1,maxpage+1):r = getPage(ip,x)result.append(r.json()[u"domains"])return result#获取最终结果,形式:{url title} 并写入文件中
def getResultWithTitle(filepath,domain_list):f = open(filepath,"a")res_dict = {'domain':'','title':''}res_list = []f.write('<html>')for x in domain_list:for i in xrange(0,len(x)):title = urllib.urlopen("http://dns.aizhan.com/index.php?r=index/title&id=%d&url=%s" % (i,x[i])).read()soup = BeautifulSoup(title)res_dict['domain'] = x[i]res_dict['title'] = soup.contents[0].encode('utf-8')f.write('<a href='+str(res_dict['domain'])+'>'+str(res_dict['domain'])+'</a>\t\t'+str(res_dict['title'])+'<br/>')res_list.append(res_dict)f.write('</html>')f.close()return res_listif __name__ == "__main__":if len(sys.argv) < 3:print "Usage:reverseIP targetIP Outfile"else:ip = str(sys.argv[1])outfile = str(sys.argv[2])if not str(os.path.basename(outfile)).split('.')[-1] == 'html':print "The outfile must end with '.html' "else:print "The target IP is :%s" % ipprint "Starting, please wait..."domainList = getDomainsList(ip)getResultWithTitle(outfile,domainList)print "Success! The path of result file is %s" % outfile
0x04
以上代码我已经执行通过,效果如下:
看来好好利用 python,确实可以轻易解决不少问题。
使用python实现IP反查域名相关推荐
- IP反查域名的方式方法汇总
众所周知,通过域名可以查询到网站的ip地址,但是通过ip地址能不能查到域名,这其实也是可以的,今天聚名企服就为大家讲讲IP反查域名的方式方法. 1.已知IP地址查对应的域名 cmd-nslookup ...
- 同IP反查域名的原理
同IP反查域名的原理是:一个一个地从搜索引擎收集域名的IP数据,然后通过IP进行分类存储域名信息,最后在查询时调用这些可能已经过时的数据. 转载于:https://www.cnblogs.com/ph ...
- ip反查域名脚本实现
此脚本基于对ip138 爱站 中国站长三个反查域名网站上的信息进行爬取 使用到了fake_useragent模块 安装命令pip3 install fake-useragent 脚本如下: impor ...
- ip反查域名的详细信息(多种方法)
如果你的渗透目标网站是一台虚拟主机,那么通过IP反查到的域名信息往往很有价值,因为一台物理服务器上面可能运行多个虚拟主机,这些虚拟主机具有不同的域名,但通常共用一个IP地址.如果你知道有哪些网站共用这 ...
- 分享一个ip反查域名的网站
http://dns.aizhan.com/ 输入你要反查域名的ip地址,会列出各个域名的访问状态. 转载于:https://blog.51cto.com/xjcf00/1640730
- python ip反查域名
__author__ = 'niexinming' # -*- coding: utf-8 -*- import os for i in range(0,255):comm="nslooku ...
- python ip反查询_python ip反查域名
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- window下利用ip反查域名与利用域名查ip
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一.已知 ...
- 通过ip反查域名信息
一个好的网站每日的访问量可以达到数百人甚至更多,可如果它出现任何一点儿问题,这些访问过的人都可能遭到威胁,这也就是黑客们将网站列为主要入侵或攻击对象的原因了.在黑客对网站进行入侵或攻击之前,首先会执行 ...
最新文章
- IE6下绝对定位的DIV被相对定位的DIV挡住的问题
- sklearn自学指南(part60)--神经网络模型(无监督)
- python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
- 问答| 四轮驱动移动机器人(SSMR)简化模型的虚拟轮间距dLR具体是多少
- LeetCode 655. Print Binary Tree (C++)
- WebGIS系统的设计与实现
- 软件体系结构六大质量属性-浅析淘宝网
- 一款盲盒的交友软件叫什么(微信恋爱脱单交友盲盒小程序制作开发介绍)
- 给大家推荐一个免费职业评测
- python第三方库安装位置_python第三方库安装在哪
- 数据库系统原理——实验一
- 2021年人工智能五大趋势预测
- python文件及目录操作(copytree)
- 【许晓笛】 EOS智能合约案例解析(1) 1
- 【C语言】——计算单词个数
- 云服务器突发性能实例t5与通用型服务器的区别?
- 关于求最大公倍数的不同算法比较
- 8-四平方和定理(拉格朗日定理)
- win10下如何为jdk配置环境变量
- 《Cisco IPv6网络实现技术(修订版)》一1.5 IPv5