Quick answer
How do I check that a proxy IP is static?
Send several requests through the proxy to an IP echo service such as api.ipify.org, a few minutes and then a few hours apart, over HTTP and SOCKS5: a static IP returns the same address every time. PinnedIP rents dedicated US static ISP IPs from $2.03 for 30 days (October 2026), no KYC, crypto.
How do I test it in five steps?
Note the IP you rented
Your client area lists it as IP:PORT:USERNAME:PASSWORD. The exit IP should be that address.
Ask an echo service
Request https://api.ipify.org through the proxy: it answers with the IP it sees.
Repeat over time
Run the same request 5 times a minute apart, then again a few hours later.
Repeat on the other protocol
Do the same over SOCKS5 and over HTTP: the IP must not change.
Keep a log
Save timestamp and IP for each test. If an IP ever changes, send the log to support.
Which commands should I run?
With curl, one line per protocol. Replace the placeholders with the values from your client area; 203.0.113.10 is a documentation address.
for i in 1 2 3 4 5; do
date -u +%FT%TZ
curl -s --proxy http://USERNAME:[email protected]:HTTP_PORT https://api.ipify.org
echo
sleep 60
donecurl -s --proxy socks5h://USERNAME:[email protected]:SOCKS_PORT https://api.ipify.orgCan I log it with a Python script?
Yes. This script checks the exit IP every 10 minutes for a day and writes a CSV line each time. It uses only the requests library; for SOCKS5 install requests[socks] and change the proxy URL to socks5h://.
import csv
import time
from datetime import datetime, timezone
import requests
PROXY = "http://USERNAME:[email protected]:8080"
EXPECTED = "203.0.113.10"
proxies = {"http": PROXY, "https": PROXY}
with open("static-ip-log.csv", "a", newline="") as f:
log = csv.writer(f)
for _ in range(144): # 24 hours, every 10 minutes
stamp = datetime.now(timezone.utc).isoformat(timespec="seconds")
try:
ip = requests.get("https://api.ipify.org", proxies=proxies, timeout=20).text.strip()
except requests.RequestException as exc:
ip = f"error: {exc.__class__.__name__}"
log.writerow([stamp, ip, "ok" if ip == EXPECTED else "CHANGED"])
f.flush()
time.sleep(600)
What results should worry me?
- A different IP on some requests: the proxy is rotating, or the connection fell back to another route. A static rental should never do this; contact support with your log.
- Errors only: the IP may be down, or your credentials or allowlist are wrong. Check the quickstart first.
- The right IP, the wrong city: that is geolocation, not rotation. Databases can disagree about the city of a fixed address; see why ISP IP cities differ.
- The right IP, an unexpected provider: look up its AS number with the ISP and ASN guide.
Why is my home IP "dynamic" while a proxy is static?
Most home connections get their public address from the provider by DHCP, and it can change after a router restart or when the lease ends. A static proxy address is assigned to a server and does not depend on a home router. This guide checks the proxy’s exit IP; to check your own home connection, compare the IP your router shows over several days.
Static IP checks: FAQ
How long should I test before trusting an IP?
A day of checks every 10 minutes is enough to see rotation. For an allowlist, keep the log running for the first week.
Will the IP change when I renew?
Renew from your balance before the end date to ask for the same IPs; keeping an IP depends on upstream stock, and the client area shows the result before you pay.
Why do I see a different IP in my browser?
Check that the browser really uses the proxy for every request, including WebRTC. A system-wide VPN or a browser extension can override proxy settings.