首页 > 编程 > Python > 正文

Python实现获取域名所用服务器的真实IP

2020-01-04 17:58:17
字体:
来源:转载
供稿:网友

本文是给大家分享的使用python获取到域名所在服务器的真实IP,原因是现在很多的网站都使用了CDN,大家很难直接查到域名的服务器的IP,本文是使用了一个巧妙的方法,详情请仔细看看下文吧

本来是要写个程序用的,没写完不写了,这一部分就贴出来吧

验证域名和IP

 

 
  1. class JianKong(): 
  2. '''查询IDC信息,封ip和过白名单''' 
  3. def __init__(self): 
  4. pass 
  5. @classmethod 
  6. def ip_verify(cls,str): 
  7. '验证IP地址规范' 
  8. pattern=re.compile('(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])/.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])/.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])/.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])'
  9. s=pattern.findall(str) 
  10. if len(s)>0: 
  11. ip=s[0][0]+'.'+s[0][1]+'.'+s[0][2]+'.'+s[0][3] 
  12. return ip 
  13. else
  14. print 'IP格式不正确'#弹窗提醒 
  15. return '' 
  16. @classmethod 
  17. def domain_verify(cls,domainStr): 
  18. '验证域名规范,返回合法域名列表' 
  19. domainList=[] 
  20. file=open('c:/domain.txt','r'
  21. domainType=file.readlines() 
  22. #去重 
  23. domainType=list(set(domainType)) 
  24. #print domainType 
  25. file.close() 
  26. #file=['com','ac','com.cn','net'+''] 
  27. for line in domainType: 
  28. #文件中动态读取每个顶级域名进行匹配 
  29. line=line.strip() 
  30. pattern=re.compile('([a-z0-9][a-z0-9/-]*?/.'+line+')(?:/s|$)+',re.S) 
  31. #例如[a-z0-9][a-z0-9/-]*?/.com.cn(?:/s|$)+ 中(?:/s|$)表示域名后缀后面必须是空白符或者字符结束(?:)表示括号不用于分组功能 
  32. #防止.com.cn先匹配到.com即停止匹配导致错误,或者匹配到.comc多了字符 
  33. result=pattern.findall(domainStr) 
  34. if len(result)>0: 
  35. #正确结果添加到返回列表 
  36. domainList=domainList+result 
  37. #去重 
  38. domainList=list(set(domainList)) 
  39. newList=[] 
  40. for d in domainList: 
  41. if d not in domainType and d+'/n' not in domainType: 
  42. newList.append(d) 
  43.  
  44. return newList 
  45. @classmethod 
  46. def getDomainType(cls): 
  47. '从工信部网站获取所有合法域名后缀' 
  48. file=open('c:/domain.txt','w'
  49. p=re.compile('class=/"by2/">/.(.*?)/</td>', re.S) 
  50. for i in range(1,23): 
  51. data='domainName=&domainBlur=0&page.pageSize=20&pageNo='+str(i)+'&jumpPageNo='+str(i) 
  52. header={'Host':'www.miitbeian.gov.cn','Origin':'http://www.miitbeian.gov.cn','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.6125.14 Safari/537.36','Referer':'http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987'
  53. url='http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987' 
  54. request=urllib2.Request(url,data,header) 
  55. response=urllib2.urlopen(request) 
  56. recv=response.read() 
  57. s=p.findall(recv) 
  58. #print s 
  59. #去重 
  60. s=list(set(s)) 
  61. for y in s: 
  62. file.write(y+'/n'
  63. file.flush() 
  64. #print str(i)+' '+y 
  65. file.close() 
  66. print '完毕'#弹窗完成 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表