IP и порта на прокси: кој формат ѝ треба на апликацијата?
Претворете запис од листа на прокси во HTTP или SOCKS URL, пополнете одделни полиња за хост и порта и правилно форматирајте IPv6 адреси.
Некои апликации бараат IP:port. На други им треба URL што почнува со http:// или socks5://. Поставките на прелистувачот често ги одделуваат адресата и портата во различни полиња. Затоа истата крајна точка може да има повеќе формати без промена на адресата.
IPv4 запис
Да претпоставиме дека листа на HTTP прокси го дава примерот за HTTP прокси 203.0.113.10:8080.
| Апликацијата бара | Внесете |
|---|---|
| Хост или IP | 203.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 скрипта може да обработува IPv4 URL и IPv6 URL со загради преку стандардниот 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 редови не треба тивко да погодува друг формат.