Snel antwoord
Hoe controleer ik of een proxy statisch is?
Om te controleren of een proxy statisch is, vraag je gedurende minstens 24 uur elk uur api.ipify.org en ipinfo.io/json op via de proxy. Vergelijk vervolgens het exit-IP, de ASN (het org-veld) en het land over alle geslaagde controles. Eén IP en één ASN in elke rij betekent dat de proxy in dat venster statisch bleef. SteadyProxy statische IP's blijven vast tijdens elke huurperiode van 30 dagen; met deze test kun je dat zelf verifiëren. Bijgewerkt 19 oktober 2026.
Wat zijn de belangrijkste feiten van de test?
| Testendpoints | api.ipify.org (alleen exit-IP) en ipinfo.io/json (IP, org/ASN, stad, regio, land) |
|---|---|
| Aanbevolen venster | 24 uur, één controle per uur (24 controles); herhaal op dag 7 voor langdurige taken |
| Statisch resultaat | Hetzelfde IP en dezelfde ASN in elke geslaagde controle |
| Roterend resultaat | Twee of meer verschillende IP's, of een wijziging van ASN |
| Mislukte aanvraag | Een timeout is geen IP-wijziging: vergelijk alleen geslaagde rijen |
| Stadswijzigingen | Kunnen gebeuren wanneer een database wordt bijgewerkt; IP en ASN zijn de sterkere signalen |
| Getest | Beide scripts draaiden op 19 oktober 2026 via een met wachtwoord beveiligde testproxy |
Wat moet er precies gelijk blijven bij een statische proxy?
Drie waarden mogen niet veranderen: het exit-IP, de ASN en het land. Het exit-IP is het adres dat websites zien; api.ipify.org retourneert alleen dat. De ASN is het netwerk dat het IP aankondigt; ipinfo.io toont die in het org-veld, bijvoorbeeld AS9009 gevolgd door een netwerknaam. Het land komt uit een IP-database. De stad en regio kunnen verschuiven wanneer die database wordt bijgewerkt, zelfs als het IP gelijk blijft. Let op: de host waarmee je verbindt is niet altijd het exit-IP: lees het exit-IP altijd via de proxy.
Hoe controleer ik een proxy met curl?
Voer eerst één controle uit om de velden te zien, dan de loop. Vervang USERNAME, PASSWORD, host en port door de vier waarden die voor jouw IP in het dashboard worden getoond. De loop schrijft één regel per controle naar ip-log.txt en wacht 3.600 seconden tussen controles. De laatste twee commando's tellen verschillende IP's en netwerken: één regel elk betekent dat de proxy statisch bleef tijdens de test.
# One check through the proxy: IP, network (org = ASN + name), country, city
curl -s -m 30 -x "http://USERNAME:[email protected]:7777" https://ipinfo.io/json
# 24 checks, one per hour, one line per check in ip-log.txt
PROXY="http://USERNAME:[email protected]:7777"
for i in $(seq 1 24); do
printf '%s ' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> ip-log.txt
curl -s -m 30 -x "$PROXY" https://ipinfo.io/json | tr -d '\n' >> ip-log.txt
echo >> ip-log.txt
sleep 3600
done
# Count the distinct exit IPs and networks in the log (one line each = static)
grep -o '"ip": *"[^"]*"' ip-log.txt | sort | uniq -c
grep -o '"org": *"[^"]*"' ip-log.txt | sort | uniq -c
Hoe controleer ik een proxy met Python?
Het Python-script voert dezelfde test uit en schrijft een CSV-bestand dat je in een spreadsheet kunt openen. Het leest de proxygegevens uit omgevingsvariabelen (PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS) en twee instellingen: CHECKS (standaard 24) en INTERVAL_SECONDS (standaard 3600). Het bevraagt beide endpoints in elke ronde, zodat je ook een verschil tussen beide kunt opvangen. Aan het eind print het de verschillende IP's, netwerken en landen, en een resultaat van één regel. We hebben het uitgevoerd op 19 oktober 2026 met Python 3.14 en Requests 2.34, via een lokale testproxy die een gebruikersnaam en wachtwoord vereist.
"""Log the exit IP, network and location of one proxy over time.
A static IP shows the same IP, network (ASN) and country in every row.
Install: python -m pip install requests
"""
import csv
import os
import time
from datetime import datetime, timezone
from urllib.parse import quote
import requests
HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")
USER = os.environ.get("PROXY_USER", "USERNAME")
PASSWORD = os.environ.get("PROXY_PASS", "PASSWORD")
CHECKS = int(os.environ.get("CHECKS", "24"))
INTERVAL = int(os.environ.get("INTERVAL_SECONDS", "3600"))
LOG_FILE = os.environ.get("LOG_FILE", "static-ip-log.csv")
PROXY = "http://" + quote(USER, safe="") + ":" + quote(PASSWORD, safe="") + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}
FIELDS = ["time_utc", "ipify_ip", "ipinfo_ip", "org", "country", "region", "city"]
def check_once(session):
ipify = session.get("https://api.ipify.org?format=json", proxies=PROXIES, timeout=(10, 30))
ipify.raise_for_status()
info = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
info.raise_for_status()
data = info.json()
return {
"time_utc": datetime.now(timezone.utc).isoformat(timespec="seconds"),
"ipify_ip": ipify.json()["ip"],
"ipinfo_ip": data.get("ip", ""),
"org": data.get("org", ""),
"country": data.get("country", ""),
"region": data.get("region", ""),
"city": data.get("city", ""),
}
def main():
rows = []
with requests.Session() as session, open(LOG_FILE, "a", newline="", encoding="utf-8") as fh:
session.trust_env = False
writer = csv.DictWriter(fh, fieldnames=FIELDS)
if fh.tell() == 0:
writer.writeheader()
for n in range(CHECKS):
try:
row = check_once(session)
except requests.RequestException as exc:
print("check", n + 1, "failed:", type(exc).__name__)
else:
writer.writerow(row)
fh.flush()
rows.append(row)
print(row["time_utc"], row["ipify_ip"], row["org"], row["country"], row["city"])
if n + 1 < CHECKS:
time.sleep(INTERVAL)
ips = {r["ipify_ip"] for r in rows} | {r["ipinfo_ip"] for r in rows}
orgs = {r["org"] for r in rows}
countries = {r["country"] for r in rows}
print("successful checks:", len(rows), "of", CHECKS)
print("distinct IPs:", sorted(ips))
print("distinct networks:", sorted(orgs))
print("distinct countries:", sorted(countries))
if len(rows) >= 2 and len(ips) == 1 and len(orgs) == 1 and len(countries) == 1:
print("RESULT: same IP, network and country in every successful check")
else:
print("RESULT: not stable, or not enough data - read the log")
if __name__ == "__main__":
main()
Hoe lang moet de test draaien?
Laat hem minstens 24 uur draaien. Veel roterende aanbiedingen wisselen het IP per aanvraag, per sessie of na een vast aantal minuten, dus een paar controles binnen één minuut kunnen een wijziging missen. Voor een taak die elke week draait, herhaal je de test na 7 dagen. Eén controle per uur is genoeg en blijft ruim onder de gebruikslimieten van gratis opzoekservices. Gebruik een korter interval alleen voor een korte test, zoals 12 controles met 5 minuten ertussen.
Wat als het IP verandert tijdens de test?
Sluit eerst een configuratiefout uit. Controleer of elke aanvraag dezelfde host, poort en gebruikersnaam gebruikte: twee verschillende IP's komen vaak van twee verschillende inlogregels. Controleer daarna of een systeemproxy of VPN op je machine sommige aanvragen heeft overgenomen; het Python-script negeert zulke instellingen met trust_env = False. Als het exit-IP van één SteadyProxy inlogregel echt verandert tijdens de huurperiode, stuur je log dan naar 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.
Waarom kan de locatie veranderen terwijl het IP gelijk blijft?
Omdat locatie een schatting uit een database is, geen eigenschap van het IP. Geolocatieleveranciers werken hun data bij, en een statisch IP kan tussen updates van de ene stad naar een nabijgelegen stad verschuiven. Registerdata is geen betere leidraad: de documentatie van RIPE zegt dat het country-attribuut niet betrouwbaar kan worden gebruikt om IP's aan landen te koppelen. Beschouw een wijziging van stad als een databasegebeurtenis en een wijziging van IP of ASN als een echte wijziging. Onze gids zijn statische residentiële proxy's echt residentieel? legt uit hoe je deze records leest.
Wat vragen mensen nog meer over het testen van statische proxy's?
Hoeveel controles bewijzen dat een proxy statisch is?
Geen enkel aantal bewijst het voor de toekomst; een test beschrijft alleen het venster dat je hebt gemeten. In de praktijk tonen 24 controles per uur met één IP en één ASN aan dat de proxy een dag niet roteerde. Herhaal de test na een week en bewaar de logs. Bij SteadyProxy is elk IP bedoeld om vast te blijven tijdens de huurperiode van 30 dagen.
Waarom zowel api.ipify.org als ipinfo.io gebruiken?
api.ipify.org retourneert alleen het IP, wat het een schone referentie maakt. ipinfo.io voegt de ASN en organisatie, de stad, de regio en het land toe. Als de twee services in dezelfde ronde ooit verschillende IP's melden, kan je client meerdere verbindingen via verschillende routes openen. Dat is het controleren waard voordat je een resultaat vertrouwt.
Kan een sticky sessie er in een korte test statisch uitzien?
Ja. Een roterende residentiële proxy met een sticky sessie houdt één IP voor een vaste tijd, vaak minuten, en wisselt dan. Een test van een paar minuten zou statisch lijken. Daarom vraagt deze gids om controles over minstens 24 uur. Een echt statisch IP houdt hetzelfde IP en dezelfde ASN over meerdere dagen.
Betekent een mislukte aanvraag dat het IP is veranderd?
Nee. Een time-out of een proxyfout betekent alleen dat één verzoek niet is voltooid. De scripts slaan mislukte rondes over en vergelijken alleen geslaagde rijen. Veel mislukkingen op rij verdienen een nadere blik: controleer de inloggegevens, de poort en je eigen verbinding, en neem contact op met support als het probleem blijft.
Is het oké om deze checks zonder token naar ipinfo.io te sturen?
Voor licht gebruik wel: één verzoek per uur is heel weinig verkeer. ipinfo.io beantwoordt basisverzoeken zonder token, zoals onze test op 19 oktober 2026 liet zien, en biedt tokens voor hogere volumes. Als je veel IP's tegelijk test, maak dan een gratis token aan en voeg die toe aan het verzoek, of gebruik alleen api.ipify.org.
Moet ik het exit-IP of de host in mijn dashboard testen?
Het exit-IP. De host waarmee je verbindt kan een naam of een adres zijn dat afwijkt van het IP dat websites zien. Voer de check uit via de proxy en gebruik het IP dat api.ipify.org teruggeeft. Dat exit-IP is ook het IP dat je aan een allowlist toevoegt of opzoekt in WHOIS.
Kan ik de test op een SteadyProxy-IP uitvoeren voordat ik erop vertrouw?
Ja, en dat raden we aan. Bestel één IP via US$ 2,24 voor 30 dagen, voer het Python-script een dag uit en lees de log. Volgens ons terugbetalingsbeleid wordt een IP dat in de eerste 24 uur na levering niet werkt en dat we niet kunnen oplossen of vervangen, volledig teruggeboekt naar je saldo.
Welke bronnen gebruikt deze gids? (5)
- ipify API — ipify (2026-10-19)
- IPinfo-ontwikkelaarsdocumentatie — IPinfo (2026-10-19)
- Requests advanced usage: proxies en time-outs — Requests (2026-10-19)
- curl man-pagina — curl (2026-10-19)
- RIPE Database-documentatie: country-attribuut — RIPE NCC (2026-10-19)