Skip to content

Commit 4b57c52

Browse files
committed
simplify dns lookup
1 parent 6f22677 commit 4b57c52

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

lib/dns_resolver.py

+7-19
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,20 @@
11
#!/usr/bin/env python3
22

3-
# Source: https://github.com/superstes/python3-resolver
4-
# Copyright (C) 2023 René Pascal Rath
3+
# Source: https://github.com/O-X-L/nftables_addon_dns
4+
# Copyright (C) 2024 Pascal Rath
55
# License: GNU General Public License v3.0
66

7-
from socket import getaddrinfo, gaierror
8-
from ipaddress import IPv4Address, AddressValueError
9-
10-
DUMMY_PORT = 80
11-
12-
13-
def _is_ipv4_address(i: str) -> bool:
14-
try:
15-
IPv4Address(i)
16-
return True
17-
18-
except AddressValueError:
19-
return False
7+
from socket import getaddrinfo, gaierror, AF_INET, AF_INET6
208

219

2210
def _sorted(data: list) -> list:
2311
data.sort()
2412
return data
2513

2614

27-
def resolve(name: str) -> list:
15+
def resolve(name: str, ip4: bool) -> list:
2816
try:
29-
raw = getaddrinfo(name, DUMMY_PORT)
17+
raw = getaddrinfo(name, None, AF_INET if ip4 else AF_INET6)
3018
# pylint: disable=R1718
3119
return _sorted(list(set([r[4][0] for r in raw])))
3220

@@ -35,8 +23,8 @@ def resolve(name: str) -> list:
3523

3624

3725
def resolve_ipv4(name: str) -> list:
38-
return _sorted([i for i in resolve(name) if _is_ipv4_address(i)])
26+
return resolve(name, True)
3927

4028

4129
def resolve_ipv6(name: str) -> list:
42-
return _sorted([i for i in resolve(name) if not _is_ipv4_address(i)])
30+
return resolve(name, False)

0 commit comments

Comments
 (0)