1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # Copyright (c) 2019 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- import socket
- from typing import Optional
- from PyQt5.QtCore import QObject, pyqtSlot
- #
- # This is a QObject because some of the functions can be used (and are useful) in QML.
- #
- class NetworkingUtil(QObject):
- def __init__(self, parent: Optional["QObject"] = None) -> None:
- super().__init__(parent = parent)
- # Checks if the given string is a valid IPv4 address.
- @pyqtSlot(str, result = bool)
- def isIPv4(self, address: str) -> bool:
- 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.
- @pyqtSlot(str, result = bool)
- def isIPv6(self, address: str) -> bool:
- 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.
- @pyqtSlot(str, result = bool)
- def isValidIP(self, address: str) -> bool:
- return self.isIPv4(address) or self.isIPv6(address)
- __all__ = ["NetworkingUtil"]
|