Zonder KYC — geen ID, geen selfie, geen documenten · Betaal in crypto: BTC, USDT, USDC, ETH, SOL, LTC · Opwaarderen vanaf US$ 25
Taal: Nederlands
Bekijk prijzen

Gids · Python

Python Requests met een statische proxy

Bouw de proxy-URL uit de vier waarden van je IP, geef die mee voor http en https, stel timeouts in en controleer het exit-IP. Getest op 19 oktober 2026.

Laatst bijgewerkt: · 6 min leestijd

Snel antwoord

Hoe gebruik ik Python Requests met een statische proxy?

Om Python Requests met een statische proxy te gebruiken, bouw je de proxy-URL op uit de host, poort, gebruikersnaam en wachtwoord van je IP. Geef deze door bij zowel de http- als de https-sleutel van proxies=, stel een timeout in en controleer het exit-IP op api.ipify.org. SteadyProxy statische IP's kosten US$ 2,24 voor 30 dagen per oktober 2026, zonder KYC en met betaling in crypto.

Wat zijn de belangrijkste feiten?

Installerenpython -m pip install requests (SOCKS5: requests[socks])
HTTP-proxy-URLhttp://USERNAME:PASSWORD@host:port, for both the http and https keys
SOCKS5-proxy-URLsocks5h://GEBRUIKERSNAAM:WACHTWOORD@host:poort (standaard SOCKS5-poort 7778)
Speciale tekensURL-encode de gebruikersnaam en het wachtwoord met urllib.parse.quote
Omgevingsproxy'ssession.trust_env = False negeert HTTP_PROXY dat elders is ingesteld
Time-outs(10, 30): 10 s om te verbinden, 30 s om te lezen, in onze voorbeelden
GetestPython 3.14 en Requests 2.34, 19 oktober 2026, via een met wachtwoord beveiligde testproxy

Hoe verstuur ik een request via één statische proxy?

Elk statisch IP heeft zijn eigen host, poort, gebruikersnaam en wachtwoord in je dashboard. Zet ze in omgevingsvariabelen, niet in de code. Het onderstaande script bouwt de proxy-URL op, stuurt één request naar api.ipify.org en stopt als het exit-IP niet het IP is dat je verwacht. Daarna leest het de netwerknaam uit ipinfo.io. Bij een verkeerd wachtwoord geeft Requests een ProxyError met 407 Proxy Authentication Required, zoals onze test liet zien.

python_requests.py: één statische proxy met een exit-IP-controle
"""Python Requests through one static proxy, with a check of the exit IP.

Install: python -m pip install requests
"""
import os
from urllib.parse import quote

import requests

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")
USER = quote(os.environ.get("PROXY_USER", "USERNAME"), safe="")
PASSWORD = quote(os.environ.get("PROXY_PASS", "PASSWORD"), safe="")
EXPECTED_IP = os.environ.get("EXPECTED_IP")  # the static IP listed in your dashboard

# The proxy URL starts with http:// even for https:// sites (Requests opens a CONNECT tunnel)
PROXY = "http://" + USER + ":" + PASSWORD + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}

with requests.Session() as session:
    session.trust_env = False  # ignore HTTP_PROXY / HTTPS_PROXY set elsewhere on the machine
    response = session.get("https://api.ipify.org?format=json", proxies=PROXIES, timeout=(10, 30))
    response.raise_for_status()
    exit_ip = response.json()["ip"]
    print("Exit IP:", exit_ip)
    if EXPECTED_IP and exit_ip != EXPECTED_IP:
        raise SystemExit("Exit IP differs from the static IP you expected")

    page = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
    page.raise_for_status()
    print("Network:", page.json().get("org"), "-", page.json().get("country"))

Waarom is de proxy-URL http:// voor https://-sites?

De sleutel van het proxies-dictionary is het schema van de doelsite; de waarde is het adres van de proxy. Voor een https://-site vraagt Requests de HTTP-proxy om een CONNECT-tunnel te openen en voert daarna TLS uit door die tunnel naar de site. De proxy ziet de ontsleutelde pagina nooit. Dus beide sleutels verwijzen naar dezelfde http://-proxy-URL. Laat certificaatcontroles aan staan: zet nooit verify=False om een proxyfout weg te werken.

Hoe geef ik elk account zijn eigen statische IP?

Koppel elk account of elke taak aan één IP en bouw één Session per koppeling. Een Session bewaart cookies en hergebruikt verbindingen, en met trust_env = False wordt de proxies-instelling niet vervangen door omgevingsvariabelen. Het onderstaande voorbeeld leest één regel per IP, in de volgorde host, poort, gebruikersnaam, wachtwoord, die je kunt kopiëren uit de vier waarden in je dashboard.

python_per_account.py: één Session per statisch IP
"""One static IP per account or per job with Python Requests.

Each line holds the four values shown for one IP in your dashboard:
host:port:username:password
"""
import os
from urllib.parse import quote

import requests

STATIC_IPS = {
    "store-uk": os.environ.get("PROXY_STORE_UK", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
    "store-de": os.environ.get("PROXY_STORE_DE", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
}


def session_for(name):
    host, port, user, password = STATIC_IPS[name].split(":", 3)
    proxy = "http://" + quote(user, safe="") + ":" + quote(password, safe="") + "@" + host + ":" + port
    session = requests.Session()
    session.trust_env = False
    session.proxies = {"http": proxy, "https": proxy}
    return session


for account in STATIC_IPS:
    with session_for(account) as s:
        ip = s.get("https://api.ipify.org", timeout=(10, 30)).text
        print(account, "->", ip)

Hoe gebruik ik SOCKS5 in plaats van HTTP?

Installeer requests[socks] en vervang http:// door socks5h:// en de HTTP-poort door de SOCKS5-poort. De h zorgt dat de proxy hostnames resolveert, zodat DNS-antwoorden overeenkomen met het land van het IP. De rest van de code blijft hetzelfde. Een volledig, getest voorbeeld staat in de SOCKS5 static proxy guide. Beide poorten van één statisch IP leiden naar hetzelfde exit-IP.

Wat betekenen de veelvoorkomende fouten?

Elke fout wijst naar één laag.

  • ProxyError met 407: verkeerde gebruikersnaam of wachtwoord, of deze machine staat niet op je allowlist.
  • ConnectTimeout: verkeerde host of poort, of een firewall aan jouw kant blokkeert uitgaand verkeer naar de proxy-poort.
  • ReadTimeout: het doel of het pad is traag; probeer later opnieuw en houd de read-timeout aan.
  • SSLError: een certificaatprobleem op het doel of op je machine; schakel verificatie niet uit.
  • 403 of 429 van het doel: de site weigerde het request of begrensde de snelheid; doe rustiger aan.

Als één IP een uur lang elk request laat mislukken, neem contact op met support. Onze vervangingsregel: Als een IP niet werkt, schrijf naar support: we repareren het of vervangen het door een ander IP in hetzelfde land wanneer de voorraad dat toelaat.

Wat vragen mensen nog meer over Python en statische proxy's?

Waarom stel ik zowel de http- als de https-sleutel in?

Requests kiest de proxy op basis van het schema van de doel-URL. Zonder de https-sleutel gaan requests naar https://-sites rechtstreeks naar buiten, vanaf je eigen IP. Als je beide sleutels op dezelfde proxy-URL zet, gaat elk request via het statische IP. De api.ipify.org-controle in het script vangt een ontbrekende sleutel meteen op.

Waarom de gebruikersnaam en het wachtwoord URL-encoden?

Tekens zoals @, : en / hebben een betekenis binnen een URL. Een wachtwoord met een @ wordt anders gelezen als het einde van het login-deel. urllib.parse.quote met safe='' codeert ze, en Requests decodeert ze voordat het de login naar de proxy stuurt. Dit werkt voor zowel HTTP- als socks5h://-URL's.

Waarom trust_env op False zetten?

Requests leest standaard HTTP_PROXY, HTTPS_PROXY en NO_PROXY uit de omgeving, en de documentatie waarschuwt dat omgevingsproxy's de proxies-instelling van een Session kunnen overschrijven. Een VPN of bedrijfsinstelling zou dan sommige requests elders naartoe kunnen sturen. Met trust_env = False gebruikt de code alleen de proxy die je doorgeeft.

Kan ik dezelfde code gebruiken met httpx of aiohttp?

Ja, het idee is hetzelfde: een proxy-URL opgebouwd uit host, poort, gebruikersnaam en wachtwoord, plus een timeout en een exit-IP-controle. De parameternamen verschillen per library en versie, dus volg de proxydocumentatie van die library. Houd één client per statisch IP aan, net als met Sessions in Requests.

Hoe houd ik inloggegevens uit mijn repository?

Lees ze uit omgevingsvariabelen of een secret manager, zoals de voorbeelden doen, en commit nooit een .env-bestand met echte waarden. Print de proxy-URL niet in logs, want die bevat het wachtwoord. Met de IP-allowlist-methode hebben scripts op machines die op de allowlist staan helemaal geen proxywachtwoord nodig.

Hoeveel requests kan één statisch IP aan in Python?

De proxy rekent per IP en per 30 dagen af, niet per GB. Facturering per IP en per 30 dagen, niet per GB; fair use is van toepassing. De echte limiet is de doelsite, die één IP kan rate-limiten. Houd de concurrency per IP bescheiden, voeg vertragingen toe en volg de voorwaarden van elke site. Voor meer volume op één taak verdeel je het werk over meerdere IP's; zie how many static IPs do I need?.

Welke bronnen gebruikt deze gids? (3)
  1. Requests advanced usage: proxies, SOCKS, timeouts — Requests (2026-10-19)
  2. urllib.parse: quote — Python Software Foundation (2026-10-19)
  3. ipify API — ipify (2026-10-19)

Vanaf US$ 2,24 per ISP-IP · 30 dagen · zonder KYC

Bekijk prijzen