2016-08-04 65 views
0

我目前正在寻找一种方法来正确处理丢失的IPv6连接。正确的方法来处理丢失的IPv6连接

用例是,我解析了一个DNS记录,该记录可能包含AAAA记录并连接到每个已解析的IP。现在运行该代码的系统可能没有IPv6连接。

所以我正在寻找正确的方法来处理这个问题,并忽略这些记录,但只有当主机无法连接。

我目前的做法是:

if ip.To4() == nil && err.(*net.OpError).Err.(*os.SyscallError).Err == syscall.EHOSTUNREACH { 
    log.Info("ignoring unreachable IPv6 address") 
    continue 
} 

但我不知道,如果有更好的办法。

回答

0

简单的解决办法是使用使用名称net.DialerDualStack设置为true,只是Dial(),让库处理“快乐眼球”为您服务。

+0

不幸的是,这不是一个选项,因为我想连接到指定的每个主机(监控检查),所以我只是寻找最佳方法来过滤掉ipv6记录,如果没有ipv6连接 – beck

相关问题