import http.client import os import dns.resolver iplist = [] #定义域名IP列表 appdomain = "www.goole.com.hk" #定义域名 def get_iplist(domain=""):#域名解析函数,解析成功ip会追加到iplist 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.address) #追加到iplist return True def checkip(ip): checkurl = ip + ":80" getcontent = "" conn = http.client.HTTPConnection(checkurl, timeout=5) #定义http超时时间,并创建连接对象 try: conn.request("GET", "/",headers = {"Host": appdomain}) r = conn.getresponse() print ("this a conn.getresponse",r) getcontent = r.read() print ("15 char",getcontent) finally: if getcontent == "<!doctype html>": print(ip+" [OK]") 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.")
结果如下
this a conn.getresponse <http.client.HTTPResponse object at 0x00000000031B9128> 15 char b'<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor="white">\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n' 185.53.178.9 [ERROR]
摘自python自动化运维