Välityspalvelimen IP ja portti: minkä muodon sovellus tarvitsee?
Muunna välityspalvelinluettelon merkintä HTTP- tai SOCKS-URL:ksi, täytä erilliset osoite- ja porttikentät ja muotoile IPv6-osoitteet oikein.
Jotkin sovellukset haluavat muodon IP:port. Toiset tarvitsevat URL:n, jonka alku on http:// tai socks5://. Selaimen asetuksissa osoite ja portti ovat usein eri kentissä. Sama päätepiste voi siis esiintyä useassa muodossa osoitteen muuttumatta.
IPv4-merkintä
Oletetaan, että HTTP-välityspalvelinluettelo antaa esimerkin HTTP-välityspalvelimesta 203.0.113.10:8080.
| Sovellus pyytää | Syötä |
|---|---|
| Isäntä tai IP | 203.0.113.10 |
| Portti | 8080 |
| HTTP-välityspalvelimen URL | http://203.0.113.10:8080 |
Älä lisää porttia kahdesti. Jos sovelluksessa on jo porttikenttä, 203.0.113.10:8080 isäntäkentässä voi saada sen yrittämään koko merkkijonon ratkaisemista isäntänimenä. Älä myöskään lisää skeemaa kenttään, joka nimenomaisesti odottaa pelkkää IP-osoitetta.
Skeeman täytyy vastata palvelua. Valitse HTTP tai SOCKS5 asiakkaan tuen mukaan ennen osoitteen muuntamista. socks5:// HTTP-päätepisteen edessä muuttaa asiakkaan lähettämää sisältöä; se ei ota SOCKS5:tä käyttöön palvelimella.
IPv6 tarvitsee URL:ssa hakasulkeet
IPv6-osoite sisältää jo kaksoispisteitä, joten URL:ssa osoite ympäröidään hakasulkeilla ennen portin lisäämistä:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
Ilman sulkeita osoitteen ja portin raja on epäselvä. Erillisiä kenttiä käyttävä sovellus haluaa yleensä isännäksi 2001:db8::10 ja portiksi 8080; noudata sen syötemuotoa. Molemmat osoitteet ovat tässä dokumentaatioesimerkkejä, eivät toimivia välityspalvelimia.
Jäsennä URL:t sen sijaan, että jakaisit jokaisesta kaksoispisteestä
Pieni Python-skripti voi käsitellä IPv4-URL:t ja hakasulkeelliset IPv6-URL:t tavallisella URL-jäsentimellä:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
hostname-ominaisuus palauttaa osoitteen ilman hakasulkeita. Alkuperäisen merkkijonon jakaminen jokaisesta kaksoispisteestä rikkoisi tämän esimerkin. Hylkää oikeassa tuontiohjelmassa myös puuttuvat isännät, tukemattomat skeemat ja portit alueen 1–65535 ulkopuolelta. URL:n jäsennys antaa sen osat; se ei todista palvelun olemassaoloa.
Kun luettelossa on käyttäjätunnus ja salasana
Tavallinen URL-rakenne on http://username:password@host:port. Tunnistetietojen merkit kuten @, # ja / vaativat oikean URL-koodauksen. Jos asiakas tarjoaa erilliset tunnistetietokentät, niitä on yleensä helpompi käyttää kuin rakentaa URL käsin.
Tarkista tarjoajan alkuperäinen muoto ennen kaksoispisteillä erotetun tunnistetietomerkkijonon muuntamista. Neljällä tällaisella kentällä ei ole yleispätevää merkitystä, ja salasana voi itsessään sisältää kaksoispisteen. Tavallisille IP:port-riveille tarkoitettu jäsennin ei saa huomaamatta arvailla toista muotoa.