Dažas lietotnes prasa IP:port. Citām vajag URL, kas sākas ar http:// vai socks5://. Pārlūka iestatījumos adrese un ports bieži ir atsevišķos laukos. Tāpēc viens galapunkts var būt attēlots vairākos formātos, adresei nemainoties.

IPv4 ieraksts

Pieņemsim, ka HTTP starpniekserveru saraksts dod HTTP starpniekservera piemēru 203.0.113.10:8080.

Lietotne prasaIevadiet
Resursdators vai IP203.0.113.10
Ports8080
HTTP starpniekservera URLhttp://203.0.113.10:8080

Nenorādiet portu divreiz. Ja lietotnei jau ir porta lauks, 203.0.113.10:8080 resursdatora laukā var likt tai mēģināt atrisināt visu virkni kā resursdatora nosaukumu. Tāpat nepievienojiet shēmu laukam, kurš skaidri paredzēts tikai IP adresei.

Shēmai jāatbilst pakalpojumam. Pirms adreses pārveidošanas izvēlieties HTTP vai SOCKS5 atbilstoši klienta atbalstam. Ierakstot socks5:// pirms HTTP galapunkta, mainās klienta sūtītais; tas neieslēdz SOCKS5 serverī.

IPv6 adresei URL vajag kvadrātiekavas

IPv6 adrese jau satur kolus, tāpēc URL pirms porta pievienošanas ietver adresi kvadrātiekavās:

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

Bez iekavām robeža starp adresi un portu ir neskaidra. Lietotne ar atsevišķiem laukiem parasti sagaida 2001:db8::10 kā resursdatoru un 8080 kā portu; ievērojiet tās ievades formātu. Abas adreses šeit ir dokumentācijas piemēri, nevis strādājoši starpniekserveri.

Parsējiet URL, nevis sadaliet pie katra kola

Neliels Python skripts var apstrādāt IPv4 URL un IPv6 URL ar iekavām, izmantojot standarta URL parsētāju:

from urllib.parse import urlsplit

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

Īpašība hostname atgriež adresi bez iekavām. Sākotnējās virknes sadalīšana pie katra kola sabojātu šo piemēru. Īstā importētājā noraidiet arī trūkstošus resursdatorus, neatbalstītas shēmas un portus ārpus 1–65535. URL parsēšana dod tā sastāvdaļas; tā nepierāda pakalpojuma esamību.

Ja sarakstā ir lietotājvārds un parole

Bieži lietota URL struktūra ir http://username:password@host:port. Tādām rakstzīmēm kā @, # un / akreditācijas datos vajadzīgs pareizs URL kodējums. Ja klients piedāvā atsevišķus akreditācijas datu laukus, tos parasti ir vieglāk izmantot nekā veidot URL ar roku.

Pirms ar koliem atdalītas akreditācijas datu virknes pārveidošanas pārbaudiet pakalpojuma sniedzēja sākotnējo formātu. Četriem šādi atdalītiem laukiem nav universālas nozīmes, un pati parole var saturēt kolu. Vienkāršu IP:port rindu parsētājam nevajadzētu klusējot minēt citu formātu.

Saistītie raksti