python批量解析域名a记录
- #encoding:utf-8
- import requests
- import json
- import dns.resolver
- import sys
- reload(sys)
- sys.setdefaultencoding("utf-8")
- # 通过域名获取域名的A记录
- def GetArecordIp(domain_name):
- address = []
- try:
- host_a = dns.resolver.query(domain_name, 'A')
- for i in host_a.response.answer:
- for j in i.items:
- address.append(j.address)
- return address
- except:
- return False
- # 通过调用淘宝的api根据ip获取城市
- def get_city(ip_addr):
- ip = ip_addr
- # 通过淘宝的api查询ip信息
- req = requests.get("http://ip.taobao.com/service/getIpInfo.php?ip={}".format(ip))
- if req:
- ip_data = json.loads(req.content)
- ip_address = ip_data['data']
- are = ''.join([ip_address['country'],ip_address['area'],ip_address['city']])
- json.dumps(are)
- # print are
- return are
- def write_to_html(domain_ip):
- # 通过拼凑ip和域名最终形成网页信息
- # print domain_ip
- title = "域名解析信息"
- tbody = ''
- for domain,ipcity in domain_ip.items():
- print domain,ipcity[0][0],ipcity[0][1],ipcity[1][0],ipcity[1][1]
- tbody += '<tr>\n<td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>\n<tr>\n' % (domain,ipcity[0][0],ipcity[0][1],ipcity[1][0],ipcity[1][1])
- html_tpl = '''
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>{title}</title>
- </head>
- <body>
- <table border="1" cellspacing="0" cellpadding="0" color='pink'>
- <thead>
- <tr cellspacing="0" cellpadding="0">
- <th>域名</th>
- <th>ip信息1</th>
- <th>ip所在城市1</th>
- <th>ip信息2</th>
- <th>ip所在城市2</th>
- </tr>
- </thead>
- {tbody}
- </table>
- </body>
- </html>
- '''
- html_handle = open('domain01.html','w')
- html_handle.write(html_tpl.format(title = title, tbody = tbody))
- html_handle.close()
- # 根据域名列表获取ip地址
- def main(domain_file):
- f = open(domain_file,'r')
- domain_list = f.readlines()
- f.close()
- domain_ip = {}
- for domain in domain_list:
- domain_name = domain.rstrip()
- ip_list = GetArecordIp(domain_name)
- ip_city_list = []
- # ip 不为空则处理
- if ip_list:
- for i in ip_list:
- city = get_city(i)
- ip_city = [i,city]
- ip_city_list.append(ip_city)
- # print json.dumps(ip_city_list).decode("unicode-escape")
- # ip=','.join(str(i)for i in ip_city_list)
- # json.dumps(ip_city_list).decode("unicode-escape")可以转为中文显示
- domain_ip[domain_name] = ip_city_list
- # print domain_name,json.dumps(ip_city_list).decode("unicode-escape")
- else:
- print "%s has no record" % domain_name
- # 将信息写入网页
- write_to_html(domain_ip)
- if __name__ == '__main__':
- domain_file = "domain_file.txt"
- main(domain_file)
简单解析
- #!/usr/bin/env python
- #coding:utf-8
- from socket import gethostbyname
- DOMAIN= "ip02.txt"
- with open(DOMAIN,'r') as f:
- for line in f.readlines():
- try:
- host = gethostbyname(line.strip('\n')) #域名反解析得到的IP
- except Exception as e:
- with open('error.txt','a+') as ERR: #error.txt为没有IP绑定的域名
- ERR.write(line.strip()+ '\n')
- else:
- with open('result.txt','a+') as r: #result.txt里面存储的是批量解析后的结果
- r.write(line.strip('\n') + ' ') #显示有ip绑定的域名,用空格隔开
- r.write(host + '\n')
python批量解析域名a记录的更多相关文章
- 批量解析域名为IP地址的python脚本
脚本如下: #!/usr/bin/env python #coding:utf- import os,sys from socket import gethostbyname DOMAIN= &quo ...
- 解释-DNS,A记录,CNAME记录,域名转向,SRV记录,TTL值,泛域名与泛解析,域名绑定
http://www.lihongye.net/post/dns.html DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名 ...
- 聊聊host中ip/域名映射记录的解析规则
今天宝叔突然在群里发了个问题; host做如下配置,a.com会指向哪里?或者说ping一下a.com结果会是什么? 127.0.0.1 a.com 192.168.4.106 a.com 192.1 ...
- 1元搭建自己的云服务器&解析域名
最近在学做微信开发,没有自己的域名和服务器就不得不寄人篱下,索性自己就到云主机上搭建了个服务器,但是水平有限弄了一个下午~~有自己的域名和服务器的好处相信不用我多说了.比如日后可以有自己域名的个性博客 ...
- python高效解析日志入库
python脚本解析日志文件入库一般有三个重要的步骤:读文件.解析文件.入库.在这三个方面下功夫,可确保我们获得最优的性能(这里不讨论并发) 1 读文件:一次读一行,磁盘IO太多,效率低下:一次性读如 ...
- DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录
相关学习资料 http://baike.baidu.com/link?url=77B3BYIuVsB3MpK1nOQXI-JbS-AP5MvREzSnnedU7F9_G8l_Kvbkt_O2gKqFw ...
- 使用adns库解析域名
1. adns.adns-python库简介 adns库是一个可进行异步非阻塞解析域名的库,主要使用C语言编写,在linux平台下运行.使用adns库进行域名解析效率非常,著名的开源网络爬虫larbi ...
- DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录(转)
http://www.cnblogs.com/LittleHann/p/3828927.html 相关学习资料 http://baike.baidu.com/link?url=77B3BYIuVsB3 ...
- python批量修改linux主机密码
+++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linu ...
随机推荐
- 使用js修改url地址参数
该方法可以修改url的参数. 例如将 www.baidu.com 修改为 www.baidu.com?name=123 操作为: window.location.href = changeURLArg ...
- springboot(十六):springboot整合shiro
数据库有五张表(userInfo,uerrole,role,rolepermission,permission) userInfo(id,username,password) userrole(uid ...
- Tensorflow Python 转 Java(一)
一.背景描述 最近python的tensorflow想办法给弄到线上去.网络用的Tensorflow现成的包.写篇博客,记录下过成.数据用kaggle中的数据为例子. 数据地址: https://ww ...
- 使用TensorFlow遇到的若干问题
一.查看版本: 进入到Python的命令行状态后,可以在终端输入查询命令如下: import tensorflow tensorflow.__version__ 查询tensorflow安装路径为: ...
- 最短路模板(SPFA POJ2387)
#include <set> #include <map> #include <queue> #include <stack> #include < ...
- JQuery常见事件
##### 事件 onclick 单机事件 ondblclick 双击事件 onmouseover 鼠标穿过 (子盒子独立) onmouseout 鼠标出去 onmouseenter 鼠标进入 (子盒 ...
- canvas粒子背景
- 【blog】SpringBoot事务
参考链接 http://www.cnblogs.com/xingzc/p/6029483.html
- Print Article(斜率DP入门+单调队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507 题目大意:给你n个数,然后问你怎么分割当前的这n个数位那几组,使得每一组的权值加起来最大.每一组 ...
- linux 用户管理命令