Starpniekservera IP un ports: kāds formāts vajadzīgs lietotnei?
Pārveidojiet starpniekserveru saraksta ierakstu par HTTP vai SOCKS URL, aizpildiet atsevišķus resursdatora un porta laukus un pareizi formatējiet IPv6 adreses.
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 prasa | Ievadiet |
|---|---|
| Resursdators vai IP | 203.0.113.10 |
| Ports | 8080 |
| HTTP starpniekservera URL | http://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.