mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-17 19:57:51 -06:00
Use socket to validate IP addresses
CURA-6483
This commit is contained in:
parent
c8872cb4a1
commit
8c42ceb8e6
1 changed files with 13 additions and 7 deletions
|
@ -1,21 +1,27 @@
|
||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import re
|
import socket
|
||||||
|
|
||||||
|
|
||||||
_REGEX_IPV4 = re.compile(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")
|
|
||||||
_REGEX_IPV6 = re.compile(r"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$")
|
|
||||||
|
|
||||||
|
|
||||||
# Checks if the given string is a valid IPv4 address.
|
# Checks if the given string is a valid IPv4 address.
|
||||||
def isIPv4(address: str) -> bool:
|
def isIPv4(address: str) -> bool:
|
||||||
return _REGEX_IPV4.fullmatch(address) is not None
|
try:
|
||||||
|
socket.inet_pton(socket.AF_INET, address)
|
||||||
|
result = True
|
||||||
|
except:
|
||||||
|
result = False
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
# Checks if the given string is a valid IPv6 address.
|
# Checks if the given string is a valid IPv6 address.
|
||||||
def isIPv6(address: str) -> bool:
|
def isIPv6(address: str) -> bool:
|
||||||
return _REGEX_IPV6.fullmatch(address) is not None
|
try:
|
||||||
|
socket.inet_pton(socket.AF_INET6, address)
|
||||||
|
result = True
|
||||||
|
except:
|
||||||
|
result = False
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
# Checks if the given string is a valid IPv4 or IPv6 address.
|
# Checks if the given string is a valid IPv4 or IPv6 address.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue