玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python源码实例 > 正文内容

利用ip反查指定域名

利用ip反查指定域名
 
标签: <利用ip反查指定域名>

 

1. [利用ip反查指定域名代码][Python]代码 

#!/usr/bin/python2.7
# -*- coding:utf-8 -*-
import urllib,urllib2
import re
import subprocess
import sys



output=''
def html(html):
    #print str
    response=urllib2.urlopen(html)
    return str(response.readlines())

def getpage(html):
    pattern=re.compile("\.\.\.\s(\d+)",re.S)
    #print html
    p=pattern.findall(html)
    #print '页数为:'+p[0]
    if len(p)==0:
        print '无查询结果'
        exit()
    else:
        return int(p[0])
def getAllDomain(html):
    #print html
    pattern1=re.compile("t<a\shref=\"http://(.*?)/\"\srel",re.S)
    domain=pattern1.findall(html)
    result=[]
    i=0
    #print domain
    for pp in domain:
        result.append(pp)
        i+=1
    return result

def nslookup(domain):
    ns=subprocess.Popen('nslookup '+domain,shell=True,stdout=subprocess.PIPE)
    ns_result=ns.stdout.read()
    #print ns_result
    #如果nslookup输出不一样需要修改正则,正则不会写,很多疏漏,简单写下能实现就行
    re_domain=re.compile("Name:\t([\s\S\w\W]*?)\nAddress:([\s\S\w\W]*?)\n", re.S)
    return re_domain.findall(ns_result)
    
    
    
def nslookupThread(allDomain):
        for d in allDomain:
            r=nslookup(d)
            #跳过未查询到的
            if len(r)==0:
                continue
            for i in range(len(r)):
                x=r[i][0].strip()
                y=r[i][1].strip()
            #print '%s:%s' % (x,y)
            
            #提取解析到此ip的域名
                if cmp(y,ip)==0:
                    print x
    

2. [代码][Python]代码     跳至 [1] [2] [全屏预览]

if __name__ == "__main__":
    #
    ip='127.0.0.1'
    if len(sys.argv)==2:
        ip=sys.argv[1]
    else:
        print 'usege:./ip2domain.py 192.168.1.1'
        exit()
    url='http://dns.aizhan.com/'+ip+'/'
    #查询域名,提取页面数
    htmls=html(url)
    page=getpage(htmls)
    allDomain=[]
    
    print '拉取['+ip+']所有域名,请稍等',
    for i in range(1,page+1):
        print '.',
        newurl=url+str(i)+'/'
        htmls=html(newurl)
        allDomain+=getAllDomain(htmls)
    print '\n共'+str(len(allDomain))+'个域名'
    #print allDomain
    print '拉取域名完毕'
    print '正在查询解析,提取指定ip的域名,请稍等',
    nslookupThread(allDomain)
    print '查询完毕,已退出'
    exit()

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/code/c487.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年01月10日 - 09时12分06秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules