我目前正在寻找一种正确处理丢失的IPv6连接的方法。
用例是,我解析了可能包含AAAA
条记录的DNS记录,并连接到每个已解析的IP。现在运行该代码的系统可能没有IPv6连接。
所以我正在寻找正确的方法来处理这个并忽略这些记录,但前提是主机无法连接。
我目前的做法是:
if ip.To4() == nil && err.(*net.OpError).Err.(*os.SyscallError).Err == syscall.EHOSTUNREACH {
log.Info("ignoring unreachable IPv6 address")
continue
}
但我不确定,如果有更好的方法。
答案 0 :(得分:0)
一个简单的解决方案是使用net.Dialer
DualStack
设置为true
而Dial()
使用名称,让图书馆处理“快乐的眼球”你。