IP a port proxy: jaký formát vaše aplikace potřebuje?
Převeďte položku seznamu proxy na HTTP nebo SOCKS URL, vyplňte oddělená pole hostitele a portu a správně zapište adresy IPv6.
Některé aplikace chtějí IP:port. Jiné potřebují URL začínající http:// nebo socks5://. Nastavení prohlížeče často odděluje adresu a port do různých polí. Stejný koncový bod proto může mít více zápisů, aniž se jeho adresa změní.
Položka IPv4
Předpokládejme, že seznam HTTP proxy uvádí ukázkovou HTTP proxy 203.0.113.10:8080.
| Aplikace požaduje | Zadejte |
|---|---|
| Hostitel nebo IP | 203.0.113.10 |
| Port | 8080 |
| URL HTTP proxy | http://203.0.113.10:8080 |
Neuvádějte port dvakrát. Pokud aplikace už má pole pro port, může zápis 203.0.113.10:8080 do pole hostitele způsobit pokus přeložit celý řetězec jako název hostitele. Stejně tak nepřidávejte schéma do pole, které výslovně očekává pouze IP adresu.
Schéma musí odpovídat službě. Před převodem adresy zvolte HTTP nebo SOCKS5 podle podpory klienta. Přidání socks5:// před HTTP koncový bod změní to, co klient odesílá; nezapne SOCKS5 na serveru.
IPv6 potřebuje v URL hranaté závorky
Adresa IPv6 už obsahuje dvojtečky, proto ji URL před přidáním portu uzavírá do hranatých závorek:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
Bez závorek je hranice mezi adresou a portem nejednoznačná. Aplikace s oddělenými poli obvykle chce 2001:db8::10 jako hostitele a 8080 jako port; dodržujte její vstupní formát. Obě zde použité adresy jsou dokumentační příklady, nikoli fungující proxy.
Parsujte URL místo dělení při každé dvojtečce
Krátký skript Pythonu zvládne URL s IPv4 i IPv6 v závorkách pomocí standardního parseru URL:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
Vlastnost hostname vrací adresu bez závorek. Rozdělení původního řetězce při každé dvojtečce by tento příklad rozbilo. Ve skutečném importéru odmítejte také chybějící hostitele, nepodporovaná schémata a porty mimo 1–65535. Parsování URL poskytne jeho části; nedokazuje existenci služby.
Když seznam obsahuje uživatelské jméno a heslo
Běžný tvar URL je http://username:password@host:port. Znaky jako @, # a / v přihlašovacích údajích vyžadují správné URL kódování. Nabízí-li klient samostatná pole pro přihlašovací údaje, bývají jednodušší než ruční sestavování URL.
Před převodem přihlašovacího řetězce odděleného dvojtečkami ověřte původní formát poskytovatele. Čtyři pole oddělená dvojtečkami nemají univerzální význam a samotné heslo může dvojtečku obsahovat. Parser jednoduchých řádků IP:port by neměl jiný formát tiše odhadovat.