Skip to content

Commit 39a092b

Browse files
committed
fix #1427
1 parent 9d17221 commit 39a092b

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

app/dns/hosts.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ func NewStaticHosts(hosts []*Config_HostMapping, legacy map[string]*net.IPOrDoma
7676
func filterIP(ips []net.IP, option IPOption) []net.IP {
7777
filtered := make([]net.IP, 0, len(ips))
7878
for _, ip := range ips {
79-
if (len(ip) == net.IPv4len && option.IPv4Enable) || (len(ip) == net.IPv6len && option.IPv6Enable) {
80-
filtered = append(filtered, ip)
79+
parsed := net.IPAddress(ip)
80+
if (parsed.Family().IsIPv4() && option.IPv4Enable) || (parsed.Family().IsIPv6() && option.IPv6Enable) {
81+
filtered = append(filtered, parsed.IP())
8182
}
8283
}
8384
if len(filtered) == 0 {

features/dns/localdns/client.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package localdns
22

33
import (
44
"context"
5-
"net"
65

6+
"v2ray.com/core/common/net"
77
"v2ray.com/core/features/dns"
88
)
99

@@ -43,8 +43,9 @@ func (c *Client) LookupIPv4(host string) ([]net.IP, error) {
4343
}
4444
var ipv4 []net.IP
4545
for _, ip := range ips {
46-
if len(ip) == net.IPv4len {
47-
ipv4 = append(ipv4, ip)
46+
parsed := net.IPAddress(ip)
47+
if parsed.Family().IsIPv4() {
48+
ipv4 = append(ipv4, parsed.IP())
4849
}
4950
}
5051
return ipv4, nil
@@ -57,8 +58,9 @@ func (c *Client) LookupIPv6(host string) ([]net.IP, error) {
5758
}
5859
var ipv6 []net.IP
5960
for _, ip := range ips {
60-
if len(ip) == net.IPv6len {
61-
ipv6 = append(ipv6, ip)
61+
parsed := net.IPAddress(ip)
62+
if parsed.Family().IsIPv6() {
63+
ipv6 = append(ipv6, parsed.IP())
6264
}
6365
}
6466
return ipv6, nil

0 commit comments

Comments
 (0)