DNS域名解析为IPv6地址杂集

10 篇文章 1 订阅
4 篇文章 0 订阅

1. Linux中查询某个域名的ipv6地址:

nslookup -query=AAAA betax.cc

2. Windows中查询某个域名的ipv6地址:

nslookup -q=AAAA betax.cc

3. Java/Groovy中根据域名获取IPv6的实现:

[1]调用getAll会获取所有的地址:

for (InetAddress i : InetAddress.getAllByName("betax.cc")) {
    println i
}
[2]最终会调用Native方法:


[3]该Native方法的源码在: src/windows/native/java/net/Inet6AddressImpl.c#Java_java_net_Inet6AddressImpl_lookupAllHostAddr


[4]该方法中调用了系统函数getaddrinfo - Linux:  http://man7.org/linux/man-pages/man3/getaddrinfo.3.html
Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx

该函数会返回所有的IP地址, 然后根据是否preferIPv6 or preferIPv4 来决定返回顺序.

4. Windows 或者 linux 如果想正确解析出IPv6的地址

 你本地必须拥有一个IPv6地址, windows添加IPv6地址可以用这个 - http://blog.csdn.net/ssergsw/article/details/9125813

5. 一个抓包结果:

dns是一个应用层协议, 底层实现是用的UDP 

ipv4的记录:



ipv6记录:



Ref:

[1]Java网络相关配置:https://docs.oracle.com/javase/1.5.0/docs/guide/net/properties.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值