Cara Membangun Pemeriksa Proxy IPRoyal untuk HTTP, SOCKS5, dan Shadowsocks
Pelajari cara memverifikasi proxy IPRoyal dengan skrip Python khusus. Periksa endpoint HTTP, SOCKS5, dan Shadowsocks untuk konektivitas, latensi, dan anonimitas IP.
Ringkasan
IPRoyal menyediakan proxy residensial, pusat data, dan ISP dengan dukungan untuk protokol HTTP, SOCKS5, dan Shadowsocks. Baik Anda melakukan scraping, memantau hasil pencarian, atau menjelajah secara privat, Anda perlu tahu bahwa proxy Anda hidup, cepat, dan tidak membocorkan IP asli Anda. Pemeriksaan manual untuk setiap endpoint tidak skalabel. Tutorial ini menunjukkan cara membuat pemeriksa proxy yang dapat digunakan kembali di Python yang menguji konektivitas, mengukur latensi, dan memverifikasi anonimitas untuk setiap endpoint IPRoyal.
Prasyarat
- Python 3.8 atau lebih baru terpasang di sistem Anda.
- Manajer paket
pip. - Kredensial proxy IPRoyal (host, port, nama pengguna, kata sandi). Anda dapat menyalinnya dari dasbor IPRoyal.
- Untuk pengujian Shadowsocks: klien Shadowsocks seperti
shadowsocks-libev(Linux/macOS) ataushadowsocks-rust. - Keakraban dasar dengan command line dan Python.
Memahami Apa yang Perlu Diperiksa
Pemeriksa proxy yang berguna harus menjawab empat pertanyaan:
- Konektivitas: Dapatkah proxy menjangkau internet publik?
- Anonimitas: Apakah IP keluar yang dikembalikan oleh layanan cocok dengan IP proxy (bukan IP asli Anda)?
- Latensi: Berapa lama waktu yang dibutuhkan permintaan dari awal hingga selesai?
- Perilaku DNS: Apakah permintaan DNS diselesaikan melalui proxy atau secara lokal? (Kebocoran mengungkapkan lokasi asli Anda.)
Protokol yang berbeda memerlukan penanganan yang sedikit berbeda. Tabel di bawah merangkum pendekatan untuk setiap protokol IPRoyal.
| Protokol | Skema Python | Penanganan DNS | Autentikasi |
|---|---|---|---|
| HTTP | http:// |
Lokal atau proxy | Nama pengguna/kata sandi di URL atau header |
| HTTPS | http:// (CONNECT) |
Lokal atau proxy | Nama pengguna/kata sandi di URL atau header |
| SOCKS5 | socks5h:// |
Jarak jauh (proxy) | Nama pengguna/kata sandi di URL |
| Shadowsocks | SOCKS5 lokal setelah ss-local |
Jarak jauh | Kata sandi di konfigurasi |
Langkah-langkah
1. Instal dependensi Python
Pustaka requests menangani proxy HTTP dan HTTPS. Untuk SOCKS5, Anda juga memerlukan requests[socks] dan pysocks.
pip install requests requests[socks] pysocks
2. Kumpulkan endpoint proxy IPRoyal Anda
Masuk ke dasbor IPRoyal dan salin daftar proxy. Sebagian besar daftar menyertakan baris dalam format:
host:port:username:password
Simpan daftar ke file teks biasa, misalnya proxies.txt. Jika Anda menggunakan format yang berbeda, sesuaikan kode penguraian di langkah berikutnya.
3. Tulis pemeriksa proxy HTTP dasar
Buat file bernama checker.py. Potongan kode berikut menguji satu proxy HTTP dan mencetak IP yang dikembalikan.
import requests
from requests.exceptions import ProxyError, ConnectTimeout
proxy_url = "http://username:password@host:port"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
try:
response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
response.raise_for_status()
print("Proxy works. Your IP appears as:", response.json()["origin"])
except (ProxyError, ConnectTimeout) as e:
print("Proxy failed:", e)
Ganti username, password, host, dan port dengan kredensial IPRoyal Anda.
4. Perluas pemeriksa ke SOCKS5
Untuk SOCKS5, ubah skema menjadi socks5h://. Huruf h memberi tahu requests untuk menyelesaikan DNS melalui proxy, yang mencegah kebocoran DNS.
proxy_url = "socks5h://username:password@host:port"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
Jalankan blok permintaan yang sama. Jika Anda melihat error Missing dependencies for SOCKS support, pasang ulang requests[socks].
5. Tambahkan pengukuran latensi dan verifikasi IP
Ubah skrip untuk mengukur waktu permintaan dan membandingkan IP yang dikembalikan dengan IP proxy yang diharapkan. Anda dapat menyimpan IP yang diharapkan di daftar proxy Anda atau mengambilnya secara terpisah.
import time
start = time.time()
response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
elapsed = time.time() - start
returned_ip = response.json()["origin"]
print(f"Latency: {elapsed:.2f}s, Returned IP: {returned_ip}")
Jika IP yang dikembalikan cocok dengan IP asli Anda, proxy tidak menganonimkan lalu lintas Anda. Periksa pengaturan autentikasi dan protokol Anda.
6. Uji endpoint Shadowsocks
Shadowsocks adalah tunnel, bukan protokol proxy langsung. Untuk memeriksa endpoint Shadowsocks IPRoyal, jalankan klien Shadowsocks lokal yang mengekspos proxy SOCKS5, lalu uji alamat SOCKS5 lokal tersebut.
Instal shadowsocks-libev di Linux atau macOS (melalui Homebrew). Lalu buat file konfigurasi ss-local.json:
{
"server": "your_iproyal_ss_server",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "your_password",
"method": "aes-256-gcm"
}
Mulai klien:
ss-local -c ss-local.json
Sekarang perlakukan socks5h://127.0.0.1:1080 sebagai proxy Anda di skrip pemeriksa. Jika koneksi berhasil, tunnel Shadowsocks berfungsi.
7. Buat pemeriksa batch dengan rotasi dan pencatatan log
Untuk beberapa proxy, uraikan file proxies.txt Anda, lakukan loop melalui setiap endpoint, dan catat hasilnya ke file CSV. Ini membantu Anda mengidentifikasi IP mati dan melacak performa dari waktu ke waktu.
import csv
with open("proxies.txt") as f:
lines = [line.strip() for line in f if line.strip()]
results = []
for line in lines:
host, port, user, pwd = line.split(":")
proxy_url = f"socks5h://{user}:{pwd}@{host}:{port}"
proxies = {"http": proxy_url, "https": proxy_url}
try:
start = time.time()
r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
elapsed = time.time() - start
ip = r.json()["origin"]
results.append((host, port, "OK", f"{elapsed:.2f}", ip))
except Exception as e:
results.append((host, port, "FAIL", "", str(e)))
with open("proxy_report.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Host", "Port", "Status", "Latency(s)", "Returned IP/Error"])
writer.writerows(results)
Jalankan skrip secara berkala untuk menjaga kumpulan proxy yang sehat.
Pemecahan Masalah
- 407 Proxy Authentication Required: Verifikasi nama pengguna dan kata sandi. Jika kata sandi Anda mengandung karakter khusus seperti
@atau:, lakukan URL-encode (misalnya,@menjadi%40). - Connection timeout: Periksa apakah host dan port sudah benar dan apakah IP Anda masuk daftar putih di dasbor IPRoyal jika diperlukan oleh paket Anda.
- Error SOCKS5: Pastikan
requests[socks]terpasang. Gunakansocks5h://untuk resolusi DNS jarak jauh;socks5://menyelesaikan DNS secara lokal. - Klien Shadowsocks gagal mulai: Konfirmasi metode enkripsi cocok dengan konfigurasi IPRoyal Anda, dan port server terbuka. Uji dengan
ss-local -c ss-local.json -vuntuk output verbose. - Kebocoran DNS: Gunakan
socks5h://dan uji dengan layanan pengujian kebocoran DNS melalui proxy. Jika lokasi resolver berbeda dari lokasi proxy, DNS bocor. - Error sertifikat HTTPS: Beberapa proxy mencegat TLS. Untuk scraping, utamakan proxy residensial atau ISP yang mendukung HTTPS end-to-end tanpa pencegatan.
Ringkasan
Anda telah membuat pemeriksa proxy berbasis Python yang memvalidasi endpoint HTTP, SOCKS5, dan Shadowsocks dari IPRoyal. Skrip mengukur latensi, memverifikasi IP keluar, dan mencatat hasil untuk analisis batch. Pemeriksaan rutin membantu Anda merotasi proxy mati dan menjaga alur kerja scraping atau privasi yang andal. Dukungan protokol IPRoyal yang luas menjadikannya pilihan fleksibel untuk tugas-tugas ini, dan pemeriksa dapat diadaptasi ke penyedia mana pun dengan mengubah format daftar proxy.