Python3.6正向解析与反向解析域中主机
公司最近接手的一家跨国企业的项目,该企业单域、多站点,且遍布美国、巴西、日本、东京、新加坡等多个国家,服务器及客户端计算机数量庞大。由于处理一些特殊故障,需要找出一些不在域中的网络设备及存储、NBU等在DNS服务器中是否有正向解析与反向解析的记录,手工查看限于数量较多无法实现,因此想到了编写了Python脚本。
一、 功能描述:
1. 分为两个功能,正向解析与反向解析
2. 正向解析查询,根据文件中写入的设备或机器名称,查询IP地址,并打开host-ip.txt,以host->ip的格式写入该文件,无法解析的,使用host->nofound写入。
3. 反向解析查询,根据正向解析中查询结果文件host->ip.txt,截取IP地址部分,然后以ip->host格式写入该文件,无法解析的,还是使用ip-nofound写入。
二、代码
import socket
ho_list = [] # 用于保存文件读取内容的机器名,列表类型
with open('hostna.txt','r') as f1:
for i in f1.readlines():
# print(i)
ho_list.append(i.strip())
print(ho_list) with open('host-ip.txt','w') as f2:
for host in ho_list:
print(host)
try:
ip = socket.getaddrinfo(host,None)[0][4][0] # 只保留IP部分
# print(ip)
f2.write(host+'->'+ip+'\n')
except Exception as e: # 有的无法正向解析的设备报错后,保证程序正常运行
print('cannot lookup')
f2.write(host + '->' + 'nofound' + '\n')
continue
正向解析
import socket
ip_list = [] # 用于保存读取文件中的IP地址部分,类型列表
with open('host-ip.txt','r') as f1:
for i in f1.readlines():
sp = i.split('->')[1]
# print(i.split('->')[1])
ip_list.append(sp.strip())
# print(ip_list)
with open('ip-host.txt','w') as f2:
for i in ip_list:
print(i)
if i == 'nofound':
continue
else:
try:
host = socket.gethostbyaddr(i)[0] # 只取主机名部分
f2.write(i + '->' + str(host) + '\n')
except socket.herror as e:
f2.write(i + '->' + 'nofound' + '\n')
反向解析
三、结果
正向解析:host-ip.txt
servername->xxx.xxx.xxx.xxx
反向解析:ip-host.txt
172.xxx.xxx.xxx->bogon
Python3.6正向解析与反向解析域中主机的更多相关文章
- Django 正向解析与反向解析
正向解析就是按照顺序查找访问(urls.py---view--templates) 反向解析就是根据命名空间命名来调到指定的页面 用反向解析的原因: 随着功能的增加会出现更多的视图,可能之前配置的正则 ...
- DNS的正向解析与反向解析
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据I ...
- DNS正向解析与反向解析
DNS:(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网, 而不去记住能够被机器直接读取的IP数串.通过主机名,最 ...
- DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析
一. 缓存服务器配置 1.DNS:BIND Berkeley Internet Name Domain 版本bind97: RPM服务器端包的名字 安装bind-libs bind ...
- Django正向解析和反向解析
转载:https://blog.csdn.net/jeekmary/article/details/79673867 先创建一个视图界面 urls.py index.html index页面加载的效果 ...
- Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...
- django反向解析和正向解析
Django的正向解析和反向解析 先创建一个视图界面 urls.py index.html index页面加载的效果 正向解析 test/?result=1 所谓正向解析就是直接在这里写地址 向url ...
- 使用Bind提供域名解析服务(反向解析)
小知识: 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名 ...
- DNS服务反向解析实验
DNS域名解析服务是用于解析域名与ip地址对应关系的服务,功能上可以实现正向解析和反向解析 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据IP地址查找对应的主机名(域名). 下面我来 ...
随机推荐
- NSIS之MUI
NSIS 2.0 版本支持定制的用户界面.所谓的 Modern UI(下称 MUI) 就是一种模仿最新的 Windows 界面风格的界面系统.MUI 改变了 NSIS 脚本的编写习惯,它使用 NSIS ...
- 直接在安装了redis的Linux机器上操作redis数据存储类型--对key的操作
一.概述: 前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String.List.Set.Hashes和Sorted-Set.这些命令都具有一个共同点,即所有的操作都是针对与Key关 ...
- 洛谷P2426 删数 [2017年4月计划 动态规划12]
P2426 删数 题目描述 有N个不同的正整数数x1, x2, ... xN 排成一排,我们可以从左边或右边去掉连续的i(1≤i≤n)个数(只能从两边删除数),剩下N-i个数,再把剩下的数按以上操作处 ...
- 避免闲置云资源浪费 | 阿里云轻量级分布式应用服务 SAE 邀您公测
您是否遇到过: 资源利用率低,多数服务器CPU平均利用率在10%以下,用户需为大量闲置资源买单. 感知 IaaS 购买和集群运维,人员技能要求高,运维效率低. 想拥抱 Kubernetes.微服务架构 ...
- Data Visualisation Cheet Sheet
Univariate plotting with pandas import pandas as pd reviews = pd.read_csv() reviews.head() //bar rev ...
- shared_from_this bad_weak_ptr的原因
原因:创建类A的对象的时候没有用智能指针包裹,而是直接new的裸指针. enable_from_this 的使用与实现原理说明: shared_from_this()是enable_shared_fr ...
- pycharm 测试执行成功,但却无法成功生成测试报告(使用HTMLTestRunner)的解决办法
pycharm 测试执行成功,在对应的测试路径下确未生成测试报告.反复确认代码也是没有问题的,在网上查找了原因:简单的unittest运行是不执行main方法的.是允许方式问题. 于是在mian方法里 ...
- HDU 1536 求解SG函数
#include<stdio.h> #include<string.h> #include<algorithm> #include<set> using ...
- twisted(转)
reactor.protocol 这两个类都在 twisted.internet 命名空间中 reactor对象是Twisted编程当中的第一步,它就是一个反应器,专门负责与服务端的连接以及监听与服务 ...
- SDUT-3377_数据结构实验之查找五:平方之哈希表
数据结构实验之查找五:平方之哈希表 Time Limit: 400 ms Memory Limit: 65536 KiB Problem Description 给定的一组无重复数据的正整数,根据给定 ...