Guon apps wolle IP:port. Oaren hawwe in URL nedich dy’t begjint mei http:// of socks5://. Browserynstellingen sette it adres en de poarte faak yn ferskillende fjilden. Itselde einpunt kin dus yn mear formaten stean sûnder dat it adres feroaret.

In IPv4-fermelding

Stel dat in list mei HTTP-proxy’s jo de foarbyldproxy 203.0.113.10:8080 foar HTTP jout.

De app freget omFolje yn
Host of IP203.0.113.10
Poarte8080
HTTP-proxy-URLhttp://203.0.113.10:8080

Jou de poarte net twa kear op. As de app al in poartefjild hat, kin 203.0.113.10:8080 yn it hostfjild derfoar soargje dat er de hiele tekenrige as hostnamme besiket op te lossen. Foegje ek gjin skema ta oan in fjild dat útdruklik allinne in IP-adres ferwachtet.

It skema moat by de tsjinst passe. Kies HTTP of SOCKS5 neffens de stipe fan de kliïnt foardat jo it adres omsette. socks5:// foar in HTTP-einpunt skriuwe feroaret wat de kliïnt ferstjoert; it skeakelt SOCKS5 op dy server net yn.

IPv6 hat fjouwerkante heakjes nedich yn in URL

In IPv6-adres befettet al dûbele punten, dus set de URL it adres tusken fjouwerkante heakjes foardat de poarte tafoege wurdt:

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

Sûnder de heakjes is de grins tusken adres en poarte ûndúdlik. In app mei aparte fjilden wol ornaris 2001:db8::10 as host en 8080 as poarte; folgje it ynfierformaat fan dy app. Beide adressen hjir binne dokumintaasjefoarbylden, gjin aktive proxy’s.

Parse URL’s ynstee fan by elke dûbele punt te splitsen

In lyts Python-skript kin IPv4-URL’s en IPv6-URL’s mei heakjes ferwurkje mei de standert-URL-parser:

from urllib.parse import urlsplit

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

De eigenskip hostname jout it adres sûnder heakjes werom. De oarspronklike tekenrige by elke dûbele punt splitsen soe dit foarbyld stikken meitsje. Wiis yn in echte ymportfunksje ek ûntbrekkende hosts, net stipe skema’s en poarten bûten 1–65535 ôf. In URL parse jout de ûnderdielen; it bewiist net dat de tsjinst bestiet.

As de list in brûkersnamme en wachtwurd befettet

In gewoane URL-yndieling is http://username:password@host:port. Tekens lykas @, # en / yn ynlochgegevens hawwe goede URL-kodearring nedich. As de kliïnt aparte fjilden foar dy gegevens hat, binne dy ornaris makliker as in URL mei de hân bouwe.

Kontrolearje it oarspronklike formaat fan de oanbieder foardat jo in troch dûbele punten skieden tekenrige mei ynlochgegevens omsette. Fjouwer sokke fjilden hawwe gjin universele betsjutting, en it wachtwurd sels kin in dûbele punt befetsje. In parser foar ienfâldige IP:port-rigels moat net stilwei in oar formaat riede.

Relatearre artikelen