龙空技术网

反转操作在Python中写代码实现利用ip反查指定域名(附源码)

Python乐园 310

前言:

现在大家对“域名转发系统源码怎么用”都比较关怀,你们都需要知道一些“域名转发系统源码怎么用”的相关文章。那么小编也在网上网罗了一些关于“域名转发系统源码怎么用””的相关内容,希望看官们能喜欢,同学们快快来了解一下吧!

#!/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

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=''+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()

标签: #域名转发系统源码怎么用 #python域名提取 #python网址编码转换 #域名分发系统源码 #二级域名分发网站源码