Somme appar vil ha IP:port. Andre treng ein URL som byrjar med http:// eller socks5://. Nettlesarinnstillingar har ofte skilde felt for adresse og port. Same endepunkt kan difor stå i fleire format utan at adressa endrar seg.

Ei IPv4-oppføring

Sei at ei HTTP-proxyliste gjev deg dømeproxyen 203.0.113.10:8080 for HTTP.

Appen spør etterSkriv inn
Vert eller IP203.0.113.10
Port8080
HTTP-proxy-URLhttp://203.0.113.10:8080

Ikkje oppgje porten to gonger. Har appen alt eit portfelt, kan 203.0.113.10:8080 i vertsfeltet få han til å prøve å slå opp heile strengen som eit vertsnamn. Legg heller ikkje til eit skjema i eit felt som uttrykkjeleg ventar berre ei IP-adresse.

Skjemaet må høve til tenesta. Vel HTTP eller SOCKS5 etter kva klienten støttar før du konverterer adressa. Å skrive socks5:// framfor eit HTTP-endepunkt endrar det klienten sender; det slår ikkje på SOCKS5 på tenaren.

IPv6 treng hakeparentesar i ein URL

Ei IPv6-adresse inneheld alt kolon, så URL-en set adressa i hakeparentesar før porten vert lagd til:

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

Utan parentesane er grensa mellom adresse og port tvitydig. Ein app med skilde felt vil vanlegvis ha 2001:db8::10 som vert og 8080 som port; følg inndataformatet hans. Begge adressene her er dokumentasjonsdøme, ikkje aktive proxyar.

Parse URL-ar i staden for å dele ved kvart kolon

Eit lite Python-skript kan handtere IPv4-URL-ar og IPv6-URL-ar med parentesar med standardparseren for URL-ar:

from urllib.parse import urlsplit

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

Eigenskapen hostname gjev adressa utan parentesane. Å dele den opphavlege strengen ved kvart kolon ville øydeleggje dette dømet. I ein verkeleg importfunksjon bør du òg avvise manglande vertar, skjema som ikkje er støtta og portar utanfor 1–65535. Å parse ein URL gjev delane hans; det provar ikkje at tenesta finst.

Når lista inneheld brukarnamn og passord

Eit vanleg URL-format er http://username:password@host:port. Teikn som @, # og / i påloggingsopplysningar krev rett URL-koding. Har klienten eigne felt for opplysningane, er det vanlegvis lettare å bruke dei enn å setje saman ein URL for hand.

Kontroller det opphavlege formatet frå leverandøren før du konverterer ein kolonseparert streng med påloggingsopplysningar. Fire kolonseparerte felt har inga allmenn tyding, og passordet kan sjølv innehalde kolon. Ein parser for enkle IP:port-linjer bør ikkje teie og gjette seg gjennom eit anna format.

Relaterte artiklar