码迷,mamicode.com
首页 > 编程语言 > 详细

在python中使用域名查询

时间:2016-12-24 23:20:32      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:python

  1. 执行基本查询

    最基本的查询就是正向查询,它根据一个主机名来查找ip地址。

getaddrinfo(...)
    getaddrinfo(host, port [, family, socktype, proto, flags])
        -> list of (family, socktype, proto, canonname, sockaddr)
    
    Resolve host and port into addrinfo struct.
#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,  
#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.  
#参数port如果字符串形式就代表一个服务名,比如“http”"ftp""email"等,或者为数字,或者为None  
#参数family为地主族,可以为AF_INET  ,AF_INET6 ,AF_UNIX.  
#参数socketype可以为SOCK_STREAM(TCP)或者SOCK_DGRAM(UDP)  
#参数proto通常为0可以直接忽略  
#参数flags为AI_*的组合,比如AI_NUMERICHOST,它会影响函数的返回值  
#附注:给参数host,port传递None时建立在C基础,通过传递NULL。  
#该函数返回一个五元组(family, socktype, proto, canonname, sockaddr),同时第五个参数sockaddr也是一个二元组(address, port)
In [30]: m = socket.getaddrinfo("www.qq.com", None)

In [31]: m                 //函数返回一个由元组组成的列表
Out[31]: 
[(2, 1, 6, ‘‘, (‘14.17.32.211‘, 0)),
 (2, 2, 17, ‘‘, (‘14.17.32.211‘, 0)),
 (2, 3, 0, ‘‘, (‘14.17.32.211‘, 0)),
 (2, 1, 6, ‘‘, (‘59.37.96.63‘, 0)),
 (2, 2, 17, ‘‘, (‘59.37.96.63‘, 0)),
 (2, 3, 0, ‘‘, (‘59.37.96.63‘, 0)),
 (2, 1, 6, ‘‘, (‘14.17.42.40‘, 0)),
 (2, 2, 17, ‘‘, (‘14.17.42.40‘, 0)),
 (2, 3, 0, ‘‘, (‘14.17.42.40‘, 0)),
 (10, 1, 6, ‘‘, (‘240e:ff:f040:28::a‘, 0, 0, 0)),
 (10, 2, 17, ‘‘, (‘240e:ff:f040:28::a‘, 0, 0, 0)),
 (10, 3, 0, ‘‘, (‘240e:ff:f040:28::a‘, 0, 0, 0))]
 
 In [32]: m[4][4]      //只选择ip地址
Out[32]: (‘59.37.96.63‘, 0)
In [33]: m[4][4][0]      //注意这个ip时字符串
Out[33]: ‘59.37.96.63‘

执行反向查询,有ip地址查找响应的主机名:

gethostbyaddr(...)
    gethostbyaddr(host) -> (name, aliaslist, addresslist)
    
    Return the true host name, a list of aliases, and a list of IP addresses,
    for a host.  The host argument is a string giving a host name or IP number.

反向查找的真实性检查:

检查的方法就是首先根据ip查找出一个域名。

然后再根据这个域名查找出一个ip列表。

最后检查你所用ip是否再ip列表里面。

代码域名查找与检测

本文出自 “自定义” 博客,谢绝转载!

在python中使用域名查询

标签:python

原文地址:http://zidingyi.blog.51cto.com/10735263/1885792

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!