Ausgabe der neuen DB Einträge
This commit is contained in:
parent
bad48e1627
commit
cfbbb9ee3d
2399 changed files with 843193 additions and 43 deletions
53
venv/lib/python3.9/site-packages/hyperlink/_socket.py
Normal file
53
venv/lib/python3.9/site-packages/hyperlink/_socket.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
try:
|
||||
from socket import inet_pton
|
||||
except ImportError:
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING: # pragma: no cover
|
||||
pass
|
||||
else:
|
||||
# based on https://gist.github.com/nnemkin/4966028
|
||||
# this code only applies on Windows Python 2.7
|
||||
import ctypes
|
||||
import socket
|
||||
|
||||
class SockAddr(ctypes.Structure):
|
||||
_fields_ = [
|
||||
("sa_family", ctypes.c_short),
|
||||
("__pad1", ctypes.c_ushort),
|
||||
("ipv4_addr", ctypes.c_byte * 4),
|
||||
("ipv6_addr", ctypes.c_byte * 16),
|
||||
("__pad2", ctypes.c_ulong),
|
||||
]
|
||||
|
||||
WSAStringToAddressA = ctypes.windll.ws2_32.WSAStringToAddressA
|
||||
WSAAddressToStringA = ctypes.windll.ws2_32.WSAAddressToStringA
|
||||
|
||||
def inet_pton(address_family, ip_string):
|
||||
# type: (int, str) -> bytes
|
||||
addr = SockAddr()
|
||||
ip_string_bytes = ip_string.encode("ascii")
|
||||
addr.sa_family = address_family
|
||||
addr_size = ctypes.c_int(ctypes.sizeof(addr))
|
||||
|
||||
try:
|
||||
attribute, size = {
|
||||
socket.AF_INET: ("ipv4_addr", 4),
|
||||
socket.AF_INET6: ("ipv6_addr", 16),
|
||||
}[address_family]
|
||||
except KeyError:
|
||||
raise socket.error("unknown address family")
|
||||
|
||||
if (
|
||||
WSAStringToAddressA(
|
||||
ip_string_bytes,
|
||||
address_family,
|
||||
None,
|
||||
ctypes.byref(addr),
|
||||
ctypes.byref(addr_size),
|
||||
)
|
||||
!= 0
|
||||
):
|
||||
raise socket.error(ctypes.FormatError())
|
||||
|
||||
return ctypes.string_at(getattr(addr, attribute), size)
|
||||
Loading…
Add table
Add a link
Reference in a new issue