Някои приложения искат IP:port. Други изискват URL, започващ с http:// или socks5://. Настройките на браузъра често разделят адреса и порта в отделни полета. Затова една крайна точка може да има няколко формата, без адресът ѝ да се променя.

Запис за IPv4

Да предположим, че списък с HTTP проксита дава примерното HTTP прокси 203.0.113.10:8080.

Приложението изискваВъведете
Хост или IP203.0.113.10
Порт8080
URL на HTTP проксиhttp://203.0.113.10:8080

Не въвеждайте порта два пъти. Ако приложението вече има поле за порт, записът 203.0.113.10:8080 в полето за хост може да го накара да опита да разреши целия низ като име на хост. Не добавяйте и схема в поле, което изрично очаква само IP адрес.

Схемата трябва да съответства на услугата. Преди преобразуване изберете HTTP или SOCKS5 според поддръжката на клиента. Добавянето на socks5:// пред HTTP крайна точка променя изпращаното от клиента, но не активира SOCKS5 на сървъра.

IPv6 изисква квадратни скоби в URL

IPv6 адресът вече съдържа двоеточия, затова URL огражда адреса с квадратни скоби, преди да добави порта:

http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080

Без скобите границата между адрес и порт е двусмислена. Приложение с отделни полета обикновено очаква 2001:db8::10 за хост и 8080 за порт; спазвайте неговия входен формат. Двата адреса тук са примери за документация, а не работещи проксита.

Анализирайте URL, вместо да разделяте при всяко двоеточие

Кратък Python скрипт може да обработва URL с IPv4 и IPv6 в скоби чрез стандартния URL анализатор:

from urllib.parse import urlsplit

proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)

Свойството hostname връща адреса без скобите. Разделянето на първоначалния низ при всяко двоеточие би повредило този пример. В реален инструмент за импорт отхвърляйте и липсващи хостове, неподдържани схеми и портове извън 1–65535. Анализът на URL дава съставните му части, но не доказва, че услугата съществува.

Когато списъкът включва потребителско име и парола

Често срещан URL формат е http://username:password@host:port. Символи като @, # и / в данните за вход изискват правилно URL кодиране. Ако клиентът предлага отделни полета за тези данни, използването им обикновено е по-лесно от ръчното изграждане на URL.

Проверете оригиналния формат на доставчика, преди да преобразувате низ с данни за вход, разделени с двоеточия. Четири такива полета нямат универсално значение, а самата парола може да съдържа двоеточие. Анализатор за прости редове IP:port не бива мълчаливо да отгатва друг формат.

Подобни статии