socks_router.parsers

Attributes

Address

RoutingEntry

RoutingTable

logger

whitespace

whitespaces

ipv4_octet

ipv6_doublet

ipv4

h16

ls32

ipv6

port

ipv4_address

ipv6_address

hostname

host_address

address

scheme

upstream_address

comment

pattern

routing_rule

routing_table

pysocks_socks5_error

Classes

Socks5ReplyType

SEE: https://datatracker.ietf.org/doc/html/rfc1928#section-6

IPv4

IPv6

Host

Pattern

UpstreamScheme

Enum where members are also (and must be) strings

UpstreamAddress

Functions

to_hex(→ str)

trace(→ trace.T)

parse_sockaddr(→ socks_router.models.Address)

Module Contents

class Socks5ReplyType[source]

Bases: enum.IntEnum

SEE: https://datatracker.ietf.org/doc/html/rfc1928#section-6

SUCCEEDED = 0
GENERAL_SOCKS_SERVER_FAILURE = 1
CONNECTION_NOT_ALLOWED_BY_RULESET = 2
NETWORK_UNREACHABLE = 3
HOST_UNREACHABLE = 4
CONNECTION_REFUSED = 5
TTL_EXPIRED = 6
COMMAND_NOT_SUPPORTED = 7
ADDRESS_TYPE_NOT_SUPPORTED = 8
classmethod __pack_format__() str[source]
property message: str
Address: TypeAlias = IPv4 | IPv6 | Host
class IPv4(address: str | IPv4, *argv, **kwargs)[source]

Bases: SocketAddress

address: IPv4
class IPv4Address(address)[source]

Bases: ipaddress.IPv4Address

Represent and manipulate single IPv4 Addresses.

classmethod __pack_format__() str[source]
__bytes__() bytes[source]
classmethod __unbytes__(input: bytes) Self[source]
class IPv6(address: str | IPv6, *argv, **kwargs)[source]

Bases: SocketAddress

address: IPv6
class IPv6Address(address)[source]

Bases: ipaddress.IPv6Address

Represent and manipulate single IPv6 Addresses.

classmethod __pack_format__() str[source]
__bytes__() bytes[source]
classmethod __unbytes__(input: bytes) Self[source]
property url_literal: str

//www.ietf.org/rfc/rfc2732.txt

Type:

SEE

Type:

https

class Host[source]

Bases: SocketAddress

address: Annotated[str, !B%*s]
class Pattern[source]
address: str
is_positive_match: bool = True
__str__()[source]

Return str(self).

class UpstreamScheme[source]

Bases: enum.StrEnum

Enum where members are also (and must be) strings

SSH
SOCKS5
SOCKS5H
property default_port
class UpstreamAddress[source]

Bases: object

scheme: UpstreamScheme
address: Address
__str__()[source]

Return str(self).

with_default_port(port: int | None = None) Self[source]
RoutingEntry: TypeAlias = list[Pattern]
RoutingTable: TypeAlias = Mapping[UpstreamAddress, RoutingEntry]
to_hex(value: int) str[source]
logger
trace(value: trace.T) trace.T[source]
whitespace: parsec.Parser[str]
whitespaces: parsec.Parser[list[str]]
ipv4_octet: parsec.Parser[int]
ipv6_doublet: parsec.Parser[int]
ipv4: parsec.Parser[str]
h16: parsec.Parser[str]
ls32: parsec.Parser[str]
ipv6: parsec.Parser[str]
port
ipv4_address: parsec.Parser[socks_router.models.IPv4]
ipv6_address: parsec.Parser[socks_router.models.IPv6]
hostname: parsec.Parser[str]
host_address: parsec.Parser[socks_router.models.Host]
address: parsec.Parser[socks_router.models.Address]
scheme: parsec.Parser[socks_router.models.UpstreamScheme]
upstream_address: parsec.Parser[socks_router.models.UpstreamAddress]
comment: parsec.Parser[str]
pattern: parsec.Parser[socks_router.models.Pattern]
routing_rule: parsec.Parser[tuple[socks_router.models.UpstreamAddress, socks_router.models.RoutingEntry]]
routing_table: parsec.Parser[socks_router.models.RoutingTable]
parse_sockaddr(sockaddr: tuple[parse_sockaddr.S, int]) socks_router.models.Address[source]
pysocks_socks5_error: parsec.Parser[tuple[socks_router.models.Socks5ReplyType, str]]