Sebagian aplikasi meminta IP:port. Yang lain memerlukan URL berawalan http:// atau socks5://. Pengaturan browser sering memisahkan alamat dan port dalam kolom berbeda. Jadi, endpoint yang sama bisa tampil dalam beberapa format tanpa mengubah alamatnya.

Entri IPv4

Misalnya, sebuah daftar proxy HTTP memberikan contoh proxy HTTP 203.0.113.10:8080.

Yang diminta aplikasiMasukkan
Host atau IP203.0.113.10
Port8080
URL proxy HTTPhttp://203.0.113.10:8080

Jangan masukkan port dua kali. Jika aplikasi sudah memiliki kolom port, menaruh 203.0.113.10:8080 di kolom host bisa membuatnya mencoba me-resolve seluruh string sebagai nama host. Demikian pula, jangan tambahkan skema ke kolom yang secara tegas hanya menerima alamat IP.

Skema harus sesuai dengan layanan. Pilih HTTP atau SOCKS5 berdasarkan dukungan klien sebelum mengubah alamat. Menulis socks5:// di depan endpoint HTTP mengubah apa yang dikirim klien; bukan mengaktifkan SOCKS5 pada server tersebut.

IPv6 memerlukan kurung siku dalam URL

Alamat IPv6 sudah mengandung titik dua, jadi URL mengapit alamat dengan kurung siku sebelum menambahkan port:

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

Tanpa kurung siku, batas alamat dan port menjadi ambigu. Aplikasi dengan kolom terpisah biasanya meminta 2001:db8::10 sebagai host dan 8080 sebagai port; ikuti format masukannya. Kedua alamat di sini adalah contoh dokumentasi, bukan proxy aktif.

Parse URL, jangan pisahkan pada setiap titik dua

Skrip Python kecil dapat menangani URL IPv4 dan IPv6 berkurung siku dengan parser URL standar:

from urllib.parse import urlsplit

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

Properti hostname mengembalikan alamat tanpa kurung siku. Memisahkan string asli pada setiap titik dua akan merusak contoh ini. Pada pengimpor nyata, tolak juga host yang kosong, skema yang tidak didukung, dan port di luar 1–65535. Mem-parse URL memberikan komponennya; bukan membuktikan bahwa layanan itu ada.

Jika daftar memuat nama pengguna dan kata sandi

Format URL yang umum adalah http://username:password@host:port. Karakter seperti @, #, dan / dalam kredensial harus diberi pengodean URL yang tepat. Jika klien menyediakan kolom kredensial terpisah, biasanya lebih mudah memakai kolom itu daripada merangkai URL secara manual.

Periksa format asli penyedia sebelum mengubah string kredensial yang dipisahkan titik dua. Empat kolom yang dipisahkan titik dua tidak memiliki arti universal, dan kata sandi sendiri bisa mengandung titik dua. Parser untuk baris IP:port sederhana tidak boleh diam-diam menebak format lain.

Artikel terkait