用python修改dns解析文件
来源:互联网 发布:php开发实例大全 编辑:程序博客网 时间:2024/06/10 03:37
需求: 域名和ip的文件,由于域名不变,但是 nslookup 解析出来的 ip 有可能会变化,所以通过解析域名,将ip提取出来,替换原文件中ip地址
一、脚本内容
#!/usr/bin/env python#-*- coding:utf-8 -*-#linux 的 nslookup 需要安装软件包 yum -y install bind-utilsimport os,re,subprocessdef panduan_ip(ip): ''' 判断ip是不是合法的ip,加入解析ip解析不出来,将会返回None :param ip: :return: ''' try: a,b,c,d = ip.strip().split('.') if 0 < int(a) < 255 and 0 < int(b) < 255 and 0 < int(c) < 255 and 0 < int(a) < 255: return ip #except Exception as e: #这个是python3的用法 except Exception,e: #这个是python2的用法 return Noneyuming = ['sms.abc.com','qq.cgf.com','weixin.abc.com']for i in yuming: #将解析的ip提取出来 new_ip = subprocess.Popen('echo %s | nslookup | grep -v "#53" | grep "Address" | cut -d" " -f2 | sort |head -1' %i ,shell=True,stdout=subprocess.PIPE).stdout.read().strip() if len(new_ip) == 0: continue #如果解析的ip为空,跳出这个循环 new_ip = panduan_ip(new_ip) #判断解析的ip是否是真实ip if new_ip == None :continue with open('aa.txt', 'r') as rf: #将源文件以读的模式打开 with open('aa1.txt', 'w') as wf: #打开新的文件 for line in rf.readlines(): if i in line: #将源文件中的ip替换为解析出来的ip line = re.sub('\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}', new_ip, line) wf.write(line) os.rename('aa1.txt', 'aa.txt')
脚本不足之处: 没有判断解析出来的ip和源文件中的ip在对应的域名下有无更改,直接将解析结果写入文件中
二、效果图
阅读全文
0 0
- 用python修改dns解析文件
- windows下修改hosts文件,添加固定的DNS解析
- windows下修改hosts文件,添加固定的DNS解析
- windows下修改hosts文件,添加固定的DNS解析
- windows下修改hosts文件,添加固定的DNS解析
- Python学习:DNS解析
- python实现XML文件解析与修改
- 《Python实现DNS解析查询》
- 用python进行DNS查询--(报文解析篇)
- 使用IPv6 DNS解析IPv6域名(不必修改hosts文件)
- ubuntu修改hosts文件 跳过DNS解析实现服务器定向登录(google,FB,TW等)
- kafak producer报bootstrap.servers DNS无法解析错误 &hosts文件修改
- python利用wmi修改IP、DNS
- Python中DNS解析的几个方法
- Python爬虫——DNS解析缓存
- 修改文件,配置IP和DNS
- 通过修改文件实现DNS委派
- bat文件实现修改IP和DNS
- codeforces 900A. Find Extra One
- 如何在Eclipse下查看JDK源代码以及java源代码阅读方法
- OpenCV、OpenCL、OpenGL、OpenMP
- leetcode 477. Total Hamming Distance 任意两个数字的汉明距离之和
- AtCoder Beginner Contest 081
- 用python修改dns解析文件
- 12.12笔记
- 专项支出用款申请单:全民学Excel第六季
- Mathematical Statistics and Data Analysis笔记
- JAVA项目工程导入.jar包
- 三子棋(c语言) 棋盘大小可随意
- CNN 卷积神经网络结构
- Effective Java之通过私有构造器强化不可实例化能力(四)
- webService的常见的调用和发布