python socket 域名_python之域名解析(DNS)

本文介绍了Python中使用socket库进行DNS域名解析和反向查询的方法,包括getaddrinfo()、gethostbyname()、gethostbyaddr()等函数的使用,以及如何验证反向查询数据的真实性。
摘要由CSDN通过智能技术生成

正向查询:主要用到函数getaddrinfo()。

最基本的查询是正向查询,它根据一个主机名来查找IP地址。例如,你想从www.example.com上下载一个web页面,首先,你需要找到IP地址。正向查询会替你完成这个任务,它会把一个名字翻译成ip地址。关于正向查询,主要会用到函数:

socket.getaddrinfo(host, port ,[family, [sockettype[,proto[,flags]]]])参数函数:host即要查找的域名,port为端口号,可以是字符串(如'http',也可以是数字),family为协议类型(可以是AF_INET, AF_INET6, 0等),sockettype为:SOCK_STREAM或者SOCK_DGRAM。该函数返回值是一列tuple:(family,socktype,proto,cannoname,sockaddr)。sockaddr实际上就是远程机器的地址,包括ip地址和端口号,即你要查找的结果。该函数返回一个tuple的列表,是因为对于一个域名的查询,可能会有多个答案(ip地址),这样做可以解决负载问题。

对于查找的地址是ipv4的话,下面的函数也可以解决问题:

socket.gethostbyname(hostname)

该函数的参数为要查找的域名,如果该域名就是ip地址,则直接返回,返回的ip地址是字符串形式,如”100.50.200“。但不支持ipv6。

反向查询:主要用到的函数gethostbyaddr()

当知道ip地址的时候&#

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值