diff options
author | Maximilian Hils <git@maximilianhils.com> | 2017-02-21 13:00:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-21 13:00:04 +0100 |
commit | aa6b0f299e7cebb70a7e5b1f8b63d7d45683e31f (patch) | |
tree | 836e9c549fcb267e45089ed778cafa3b3bcdb4f0 | |
parent | 11134b669e649231d7ad79642fea80b7e9f796d7 (diff) | |
download | mitmproxy-aa6b0f299e7cebb70a7e5b1f8b63d7d45683e31f.tar.gz mitmproxy-aa6b0f299e7cebb70a7e5b1f8b63d7d45683e31f.tar.bz2 mitmproxy-aa6b0f299e7cebb70a7e5b1f8b63d7d45683e31f.zip |
minor changes
-rw-r--r-- | mitmproxy/net/check.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mitmproxy/net/check.py b/mitmproxy/net/check.py index ac2b6830..d30c1df6 100644 --- a/mitmproxy/net/check.py +++ b/mitmproxy/net/check.py @@ -1,5 +1,5 @@ +import ipaddress import re -from ipaddress import ip_address # Allow underscore in host name _label_valid = re.compile(b"(?!-)[A-Z\d\-_]{1,63}(?<!-)$", re.IGNORECASE) @@ -7,20 +7,23 @@ _label_valid = re.compile(b"(?!-)[A-Z\d\-_]{1,63}(?<!-)$", re.IGNORECASE) def is_valid_host(host: bytes) -> bool: """ - Checks if a hostname is valid. + Checks if the passed bytes are a valid DNS hostname or an IPv4/IPv6 address. """ try: host.decode("idna") except ValueError: return False + # RFC1035: 255 bytes or less. if len(host) > 255: return False if host and host[-1:] == b".": host = host[:-1] + # DNS hostname if all(_label_valid.match(x) for x in host.split(b".")): return True + # IPv4/IPv6 address try: - ip_address(host.decode('idna')) + ipaddress.ip_address(host.decode('idna')) return True except ValueError: return False |