Proxy-IP en poort: Watter formaat het jou toepassing nodig?
Skakel ’n proxylysinskrywing om na ’n HTTP- of SOCKS-URL, vul afsonderlike gasheer- en poortvelde in en formateer IPv6-adresse korrek.
Sommige toepassings wil IP:port hê. Ander benodig ’n URL wat met http:// of socks5:// begin. Blaaierinstellings plaas adres en poort dikwels in verskillende velde. Dieselfde eindpunt kan dus in verskeie formate verskyn sonder dat sy adres verander.
’n IPv4-inskrywing
Veronderstel ’n HTTP-proxylys gee jou die voorbeeld-HTTP-proxy 203.0.113.10:8080.
| Die toepassing vra vir | Voer in |
|---|---|
| Gasheer of IP | 203.0.113.10 |
| Poort | 8080 |
| HTTP-proxy-URL | http://203.0.113.10:8080 |
Moenie die poort twee keer insluit nie. As die toepassing reeds ’n poortveld het, kan 203.0.113.10:8080 in die gasheerveld dit laat probeer om die hele string as ’n gasheernaam op te los. Moet ook nie ’n skema byvoeg in ’n veld wat uitdruklik net ’n IP-adres verwag nie.
Die skema moet by die diens pas. Kies HTTP of SOCKS5 volgens die kliënt se ondersteuning voordat jy die adres omskakel. Om socks5:// voor ’n HTTP-eindpunt te skryf, verander wat die kliënt stuur; dit aktiveer nie SOCKS5 op daardie bediener nie.
IPv6 benodig vierkantige hakies in ’n URL
’n IPv6-adres bevat reeds dubbelpunte, daarom omring die URL die adres met vierkantige hakies voordat die poort bygevoeg word:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
Sonder die hakies is die grens tussen adres en poort dubbelsinnig. ’n Toepassing met afsonderlike velde wil gewoonlik 2001:db8::10 as gasheer en 8080 as poort hê; volg sy invoerformaat. Albei adresse hier is dokumentasievoorbeelde, nie aktiewe proxy’s nie.
Ontleed URL’s eerder as om by elke dubbelpunt te verdeel
’n Klein Python-skrip kan IPv4-URL’s en IPv6-URL’s met hakies met die standaard-URL-ontleder hanteer:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
Die hostname-eienskap gee die adres sonder die hakies terug. Om die oorspronklike string by elke dubbelpunt te verdeel, sou hierdie voorbeeld breek. Verwerp in ’n werklike invoerprogram ook ontbrekende gashere, onondersteunde skemas en poorte buite 1–65535. URL-ontleding gee jou die komponente; dit bewys nie dat die diens bestaan nie.
Wanneer die lys ’n gebruikersnaam en wagwoord bevat
’n Algemene URL-uitleg is http://username:password@host:port. Tekens soos @, # en / in aanmeldbesonderhede moet korrek URL-gekodeer word. As die kliënt afsonderlike velde vir dié besonderhede bied, is dit gewoonlik makliker as om ’n URL met die hand te bou.
Gaan die verskaffer se oorspronklike formaat na voordat jy ’n dubbelpuntgeskeide string met aanmeldbesonderhede omskakel. Vier velde wat deur dubbelpunte geskei word, het geen universele betekenis nie, en ’n wagwoord kan self ’n dubbelpunt bevat. ’n Ontleder vir eenvoudige IP:port-reëls moet nie stilweg deur ’n ander formaat raai nie.