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反查域名相关推荐

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

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

  2. 同IP反查域名的原理

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

  3. ip反查域名脚本实现

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

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

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

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

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

  6. python ip反查域名

    __author__ = 'niexinming' # -*- coding: utf-8 -*- import os for i in range(0,255):comm="nslooku ...

  7. python ip反查询_python ip反查域名

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

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

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

  9. 通过ip反查域名信息

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

最新文章

  1. IE6下绝对定位的DIV被相对定位的DIV挡住的问题
  2. sklearn自学指南(part60)--神经网络模型(无监督)
  3. python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
  4. 问答| 四轮驱动移动机器人(SSMR)简化模型的虚拟轮间距dLR具体是多少
  5. LeetCode 655. Print Binary Tree (C++)
  6. WebGIS系统的设计与实现
  7. 软件体系结构六大质量属性-浅析淘宝网
  8. 一款盲盒的交友软件叫什么(微信恋爱脱单交友盲盒小程序制作开发介绍)
  9. 给大家推荐一个免费职业评测
  10. python第三方库安装位置_python第三方库安装在哪
  11. 数据库系统原理——实验一
  12. 2021年人工智能五大趋势预测
  13. python文件及目录操作(copytree)
  14. 【许晓笛】 EOS智能合约案例解析(1) 1
  15. 【C语言】——计算单词个数
  16. 云服务器突发性能实例t5与通用型服务器的区别?
  17. 关于求最大公倍数的不同算法比较
  18. 8-四平方和定理(拉格朗日定理)
  19. win10下如何为jdk配置环境变量
  20. 《Cisco IPv6网络实现技术(修订版)》一1.5 IPv5

热门文章

  1. 线性代数(5)—— 向量组的秩和矩阵的秩
  2. Linux下的Backlight子系统(一)
  3. 关于QQ一些功能的实现(二)
  4. NSN HLR simulator for provisioning in expect
  5. Vant在微信小程序中的使用
  6. 麦克风阵列研究2 声源定位 python界面
  7. python 20秒画完小猪佩奇“社会人”
  8. 幼儿园的计算机一年级的教案,一年级活动教案
  9. 助力中国 DevOps 运动,ONES 携手 DevOps 社区举办第12届 Meetup
  10. 奥斯卡影帝马修·麦康纳给毕业生的话