环境

python3

先安装dnspython模块 httpclient模块 resolver模块

pip install dnspython
pip install hhtpclient
pip install resolver

dns轮训(方法一)

import dns.resolver
import os
import http.client
iplist = []
appdomain = 'www.baidu.com'
def get_iplist(domain=''):
try:
A = dns.resolver.query(domain,'A')
except Exception as e:
print ("dns resolver error:"+str(e))
return
for i in A.response.answer:
for j in i.items:
iplist.append(j)
return True
def checkip(ip):
checkurl = str(ip) + ':80'
getcontent=''
http.client.socket.setdefaulttimeout(20)
#创建连接对象
conn = http.client.HTTPConnection(checkurl)
try:
conn.request('GET','/',headers = {'Host': appdomain})
r = conn.getresponse()
getcontent = r.read(15)
finally:
if getcontent == b'<!DOCTYPE html>':
print (str(ip)+' [ok]')
else:
print (str(ip)+' [Error]')
if __name__ == "__main__":
if get_iplist(appdomain) and len(iplist) > 0:
for ip in iplist:
checkip(ip)
else:
print('dns resolver error.')

 dns轮训(方法二)

dns轮训python的更多相关文章

  1. python自动化运维笔记3 —— dns处理模块dnspython

    1.3 DNS处理模块 dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事物签名)验证消息和EDNS0(扩 ...

  2. php经典笔试题

    五.基础及程序题(建议使用你擅长的语言:C/C++.PHP.Java) 5.写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组.(提示:不能使用系统已有函数,另外请仔细回忆以前学 ...

  3. MySQL架构篇(一)

    MySQL复制解决了什么问题? 1.实现在不同服务器上的数据分布 2.利用二进制日志增量进行 3.不需要太多的带宽 4.但是使用基于行的复制在进行大批量的更改时会对带宽带来一定的压力,特别是跨IDC环 ...

  4. ansible的lookup

    lookup路径: /usr/lib/python2.7/site-packages/ansible/plugins/lookup 所有的lookup插件列表cartesian.py dnstxt.p ...

  5. Nginx + Keeplived双主测试

    Author: JinDate: 20130613Title: Nginx + Keeplived 双主测试 前言:一年多前做过一次测试,时间久了忘记了,现在又重新做一次 一.环境1.基本信息和规划p ...

  6. (转) Docker - Docker1.12服务发现,负载均衡和Routing Mesh

    看到一篇介绍 Docker swarm以及如何编排的好文章,挪放到这里,自己学习的同时也分享出来. 原文链接: http://wwwbuild.net/dockerone/414200.html -- ...

  7. PHP经典面试题01

    五.基础及程序题(建议使用你擅长的语言:C/C++.PHP.Java) 5.写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组.(提示:不能使用系统已有函数,另外请仔细回忆以前学 ...

  8. Kong网关安装之Docker版(2)

    1.安装kong管理工具:konga或者kong-dashboard,这里选择konga 拉取konga镜像: sudo docker pull pantsel/konga:0.14.4 初始化kon ...

  9. Python 修改电脑DNS

    Pc电脑一般连网都是动态DHCP获取局域的IP地址,而且DNS服务器为自动获取地址.要修改DNS就要打开本地网络-本地连接- 属性- TCP/IP 手动修改DNS. 其实Python也可以通过WMI接 ...

随机推荐

  1. C中printf函数的用法总结

    函数语法 stdio.h文件中的定义: /* Write formatted output to stdout. */ int printf (const char *__restrict __for ...

  2. Web前端基础学习-3

    bfc(block formatting context) 块级格式化上下文 生成bfc的方式: 1.根元素: 2.float属性不为none(脱离文档流): 3.position为absolute或 ...

  3. docker 安装nexus

    1.查找镜像 docker search nexus 2.拉取镜像 docker pull sonatype/nexus3 3.启动容器 docker run -d -p 8081:8081 -p 8 ...

  4. 不修改源代码,动态注入Java代码的方法(转)

    转自:https://blog.csdn.net/hiphoon_sun/article/details/38707927 有时,我们需要在不修改源代码的前提下往一个第三方的JAVA程序里注入自己的代 ...

  5. Android 混淆总结(直接copy)(转)

    转自:http://blog.csdn.net/u012188405/article/details/51985273 # Add project specific ProGuard rules he ...

  6. 关于Linux_监控系统资源/性能命令_vmstat

    (系统资源查看命令-vmstat[监控系统资源命令])          command:vmstat  [刷新延时 刷新次数]   分解解析: procs:进程信息字段:              ...

  7. vue 之组件

    组件 '''1.根组件:new Vue()创建的组件,一般不明确自身的模板,模板就采用挂载点2.局部组件: local_component = {}2.全局组件: Vue.component({})' ...

  8. css float 浮动

    CSS Float(浮动) 什么是 CSS Float(浮动)?大理石平台价格 CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列. Float(浮动),往往是用于图像, ...

  9. 切换路由时取消全部或者部分axios请求,并将一些从不需要取消的加入白名单

    1. axios拦截器进行配置,除了白名单中的接口,统统保存到全局变量canCancelAxios中 window.canCancelAxios = []; // http request 拦截器 a ...

  10. 2019 牛客暑期多校 G subsequence 1 (dp+组合数)

    题目:https://ac.nowcoder.com/acm/contest/885/G 题意:给你两个串,要求上面哪个串的子序列的值大于下面这个串的值的序列个数,不含前导零 思路:我们很容易就可以看 ...