Algunes aplicacions demanen IP:port. D’altres necessiten un URL que comenci per http:// o socks5://. La configuració del navegador sovint separa l’adreça i el port en camps diferents. Així, el mateix punt final pot aparèixer en diversos formats sense canviar d’adreça.

Una entrada IPv4

Suposem que una llista de servidors intermediaris HTTP dona el servidor HTTP d’exemple 203.0.113.10:8080.

L’aplicació demanaIntrodueix
Amfitrió o IP203.0.113.10
Port8080
URL del servidor intermediari HTTPhttp://203.0.113.10:8080

No indiquis el port dues vegades. Si l’aplicació ja té un camp de port, posar 203.0.113.10:8080 al camp de l’amfitrió pot fer que intenti resoldre tota la cadena com un nom d’amfitrió. Tampoc afegeixis un esquema a un camp que esperi expressament només una adreça IP.

L’esquema ha de coincidir amb el servei. Tria HTTP o SOCKS5 segons el suport del client abans de convertir l’adreça. Escriure socks5:// davant d’un punt final HTTP canvia el que envia el client; no activa SOCKS5 en aquell servidor.

IPv6 necessita claudàtors en un URL

Una adreça IPv6 ja conté dos punts, de manera que l’URL tanca l’adreça entre claudàtors abans d’afegir-hi el port:

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

Sense claudàtors, el límit entre adreça i port és ambigu. Una aplicació amb camps separats sol esperar 2001:db8::10 com a amfitrió i 8080 com a port; segueix el seu format d’entrada. Totes dues adreces són exemples de documentació, no servidors intermediaris actius.

Analitza els URL en lloc de separar a cada signe de dos punts

Un petit script de Python pot gestionar URL IPv4 i IPv6 amb claudàtors mitjançant l’analitzador d’URL estàndard:

from urllib.parse import urlsplit

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

La propietat hostname retorna l’adreça sense claudàtors. Separar la cadena original a cada signe de dos punts faria malbé aquest exemple. En un importador real, rebutja també amfitrions absents, esquemes no compatibles i ports fora d’1–65535. Analitzar un URL en dona els components; no demostra que el servei existeixi.

Quan la llista inclou un nom d’usuari i una contrasenya

Un format d’URL habitual és http://username:password@host:port. Els caràcters com @, # i / dins les credencials necessiten una codificació URL correcta. Si el client ofereix camps separats de credencials, fer-los servir sol ser més fàcil que construir l’URL a mà.

Comprova el format original del proveïdor abans de convertir una cadena de credencials separades per dos punts. Quatre camps separats així no tenen un significat universal, i la contrasenya mateixa pot contenir dos punts. Un analitzador per a línies IP:port senzilles no ha d’endevinar silenciosament un altre format.

Articles relacionats