python dns解析以及服务检测

最近在看刘天斯的python自动化运维,按照刘老师的思路,记录一个dns轮询以及服务检测的粟子,作为学习笔记。

#!/usr/bin/env python

import dns.resolver

import os

import httplib

iplist = [ ]               //定义一个空列表,用于存放解析得到的IP地址

appdomain = "www.baidu.com"            //定义业务域名

def get_iplist(domain=""):           //建立一个获取DNS解析后的IP地址函数方法

try:                A = dns.resolver.query(domain, ‘A‘)    //解析域名的A记录

except Exception,e:

print "dns resolver error:"+str(e)

return

for i in A.response.answer:            //解析出A记录对应的地址

for j in i.items:

iplist.append(j.address)      //将获取到的地址加入列表

return True

def checkip(ip):

checkurl=ip+":80"              //检查ip服务器的80端口服务是否正常

httplib.socket.setdefaulttimeout(5)  //定义http链接超时时间为5秒

conn=httplib.HTTPConnection(checkurl) //创建http链接对象

try:

conn.request("GET","/",headers = {"Host": appdomain})  //发起url请求,添加                                                                           主机头

r=conn.getresponse()

getcontent = r.read(15)   //获取URL页面前15个字符,以便做可用性校验

finally:

if getcontent=="<!doctype html>":    //监控URL页的内容一般是事先定义好的

print ip+" [OK]"                // HTTP 200状态

else:

print ip+" [Error]"

if __name__=="__main__":

if get_iplist(appdomain) and len(iplist) >0:        //条件,域名解析 至少返回一个IP

for ip in iplist:

checkip(ip)

else:

print "dns resolver error."

运行result:

14.215.177.37  [OK]

时间: 2024-10-03 02:28:40

python dns解析以及服务检测的相关文章

我眼中的 Nginx(六):深入 Nginx/Openresty 服务里的 DNS 解析

张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护.Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的研究:曾为 ngx_lua 贡献源码,在 Nginx.ngx_lua.CDN 性能优化.日志优化方面有较为深入的研究. DNS 解析在 Nginx/OpenResty 的服务里是不可分割的一个功能,本文主要来介绍下 Nginx 和 OpenResty 服务里的一些不同的 DNS 解析方式以及它们之间

C#实现DNS解析服务

利用ARSoft.Tools.Net实现一个客户端DNS解析服务,通过这个工具,可看到当前客户端对某个域名的解析地址是否正确. ARSoft.Tools.Net是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client.DNS Server接口. 使用该接口可轻松实现DNS客户请求端及服务器解析端.项目地址:http://arsofttoolsnet.codeplex.com/或参考:http://i.iscla

小型公司网络组建及WEB服务配置及DNS解析

实验名称:小型公司网络组建及WEB服务配置及DNS解析实验拓扑:所需设备:1.5台三层交换机(路由器也OK) 2. 1台DNS服务器 3. 1台WEB服务器 4. 5台PC机 5. 一台客户端 client 1 地址规划:设备 IP地址及子网掩码 所属vlan 网关 DNS PC1 |192.168.1.1|/24 |VLAN10 |192.168.1.254| 192.168.3.1| PC2 |192.168.2.2|/24 |VLAN20 |192.168.2.254| 192.168.3

DNS(BIND) 正向解析 &nbsp; 反向解析 基本服务的搭建

操作系统:centos 6.6 yum源安装bind安装包 yum install -y bind 正向解析与反向解析核心配置目录 /etc/named.conf   配置文件 /var/named/          数据文件目录 为了更好的理解整个正向解析与反向解析过程,自己写配置文件: cp /etc/named.conf  /etc/named.conf.bak     备份原配置文件 > /etc/named.conf                                  

DNS解析服务结构图

1.DNS(domain name system) 域名 <==> IP地址 DNS解析过程: 原文地址:https://www.cnblogs.com/wqs-Time/p/11642989.html

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。

今天带大家来看看如何手动编译源码bind,自己手动编译安装的很多文件都要自己去建立,配置文件也要从零写起,而且没有服务启动脚本,需要自己编写启动脚本. 实验规划: 1.在192.168.1.200这台主机上编译安装bind,完成后为named服务编写启动脚本,加入到service. 2.配置view实现智能DNS解析:当请求解析www.tuchao.com,来源为192.168.1.0/24时候,解析到192.168.1.100.其他的来源都解析到外网地址,1.1.1.1 3.使用querype

Linux中Dns解析及Bnd的使用

DNS概念 Domian Name System:域名服务系统,因特网上作为域名和ip地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串,通过主机名来寻找主机IP地址的过程就叫做名称解析. DNS解析是通过UDP协议进行传输的,默认通过UDP端口是53,也通过TCP的53号端口. 一.域名 www.magedu.com:称为FQDN,表示为完全限定域名,通俗的讲网址,也是个主机名. www.magedu.com 的完整地址其实是 www.mag

python -- DNS处理模块dnspython

简介 dnspython – 是python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验 安装dnspython pip install dnspython 使用 常见的DNS解析类型包括A.MX.NS.CNAME (1)A记录的查询,实例如下: import dns.resolver domain = raw_input('Please input an domain: ') A = dns.resolver.query(domain, 'A') for i i

DNS隧道通信的检测

DNS隧道通信的检测 DNS 隧道通信 DNS 隧道通信是C&C常用的通信方式,一般常用的编码方式Base64,Binary编码,Hex编码等.且请求的Type一般都是txt(为了返回的时候能够加入更多的信息).payload部分一般是子域名.攻击者自己控一个域的DNS权威应答服务器,然后等待失陷主机请求域名,本地DNS服务器迭代查询转发请求到那台权威DNS,从而实现失陷主机与C&C Server的通信. DNS 检测方案 + 频率大:一般远超正常的DNS频率: + 不重复:一般子域名变化