Jawaban singkat
Bagaimana cara menggunakan proxy kota AS di Python?
Susun URL proxy dari gateway dan username kota, lalu teruskan ke requests: http://USERNAME-country-us-state-il-city-chicago:[email protected]:7777. Tambahkan -zip- untuk lingkungan tertentu atau -session- untuk mempertahankan satu IP. MetroProxies menyertakan penargetan kota, ZIP, dan ASN di setiap paket mulai US$0,50/GB (Oktober 2026). Tanpa KYC; kripto.
import requests
user = "USERNAME-country-us-state-il-city-chicago"
proxy = f"http://{user}:[email protected]:7777"
r = requests.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=30)
r.raise_for_status()
print(r.json().get("city"), r.json().get("org"))
Bagaimana cara fallback dari ZIP ke kota ke negara bagian?
Tempat kecil bisa saja tidak memiliki IP online pada saat tertentu. Coba request paling sempit dulu, lebarkan satu level setiap kali, dan kembalikan level yang merespons agar bisa disimpan bersama hasilnya. Fungsi di bawah melakukan hal itu dan berhenti setelah level negara bagian alih-alih mencoba terus-menerus.
import requests
GATEWAY = "gw.metroproxies.com:7777"
USER, PASSWORD = "USERNAME", "PASSWORD"
def fetch_local(url: str, state: str, city: str | None = None, zip_code: str | None = None) -> tuple[str, requests.Response]:
levels = []
if city and zip_code:
levels.append(("zip", f"-state-{state}-city-{city}-zip-{zip_code}"))
if city:
levels.append(("city", f"-state-{state}-city-{city}"))
levels.append(("state", f"-state-{state}"))
last_error: Exception | None = None
for level, segment in levels:
proxy = f"http://{USER}-country-us{segment}:{PASSWORD}@{GATEWAY}"
try:
r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
r.raise_for_status()
return level, r
except requests.RequestException as e:
last_error = e
raise RuntimeError(f"no IP at zip, city or state level: {last_error}")
level, resp = fetch_local("https://ipinfo.io/json", "nm", city="albuquerque", zip_code="87102")
print(level, resp.json().get("city"))
import requests
user = "USERNAME-country-us-state-wa-city-tacoma-session-tac01-ttl-15"
proxy = f"http://{user}:[email protected]:7777"
with requests.Session() as s:
s.proxies = {"http": proxy, "https": proxy}
first = s.get("https://api.ipify.org", timeout=30).text
# step 1, step 2 ... on your own site, all from the same Tacoma IP
second = s.get("https://api.ipify.org", timeout=30).text
print(first, second, "same IP" if first == second else "IP changed: restart the flow")
Detail Python apa yang sering membuat orang tersandung?
- IP baru per request:
requests.Session()menjaga koneksi tetap terbuka, jadi mode rotating memberi satu IP untuk seluruh sesi. Gunakan panggilanrequests.get()biasa atauSessionbaru per request untuk merotasi. - SOCKS5: instal
pip install "requests[socks]"dan gunakansocks5h://agar proxy yang me-resolve hostname, bukan mesin Anda. Port 7778. - Karakter khusus di password: URL-encode dengan
urllib.parse.quote(password, safe=""). - Timeout: selalu setel; exit residensial bisa lebih lambat daripada data-center.
- Sopan: jaga laju request ke setiap situs tetap wajar dan patuhi robots.txt serta ketentuannya.
Ke mana sebaiknya saya pergi selanjutnya?
Mulai dari pengaturan lima menit, bandingkan dengan contoh Node.js dan curl, dan pertahankan IP dengan sesi sticky per kota. Semua dokumentasi: dokumentasi.
Apa lagi yang orang tanyakan tentang Python?
Apakah httpx juga bisa?
Ya. Di httpx 0.28 dan lebih baru, teruskan proxy="http://USERNAME-country-us-state-il-city-chicago:[email protected]:7777" ke httpx.Client(). Versi lama menggunakan argumen proxies.
Apakah contoh-contoh ini dijalankan terhadap gateway?
Contoh-contoh ini dicek sintaksnya dengan python -I -m py_compile pada Python 3.10+, dengan USERNAME dan PASSWORD sebagai placeholder. Jalankan dengan kredensial Anda sendiri.
Bagaimana cara mendapatkan ASN dari IP exit?
Field org pada balasan ipinfo.io diawali dengan itu ("AS7922 ..." untuk Comcast). Untuk penargetan ASN, tambahkan -asn-7922 ke username; lihat penargetan ASN.