# How to check that a proxy IP is static, step by step

> How to check that a proxy IP is static: test the exit IP over time with curl or Python, compare HTTP and SOCKS5, log changes. Copy-paste scripts, no KYC needed.

- URL: https://pinnedip.com/guides/check-static-ip/
- Last updated: 2026-10-19
- Publisher: PinnedIP (https://pinnedip.com)

A static proxy should show the same exit IP every time, on every protocol, for the whole rental. Here is how to prove it with a few requests, a small script and a log you can keep.

**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?

1. **Note the IP you rented** — Your client area lists it as IP:PORT:USERNAME:PASSWORD. The exit IP should be that address.
2. **Ask an echo service** — Request https://api.ipify.org through the proxy: it answers with the IP it sees.
3. **Repeat over time** — Run the same request 5 times a minute apart, then again a few hours later.
4. **Repeat on the other protocol** — Do the same over SOCKS5 and over HTTP: the IP must not change.
5. **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.

*curl: five checks a minute apart (HTTP)*

```bash
for i in 1 2 3 4 5; do
  date -u +%FT%TZ
  curl -s --proxy http://USERNAME:PASSWORD@203.0.113.10:HTTP_PORT https://api.ipify.org
  echo
  sleep 60
done
```

*curl: the same check over SOCKS5*

```bash
curl -s --proxy socks5h://USERNAME:PASSWORD@203.0.113.10:SOCKS_PORT https://api.ipify.org
```

## Can 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://`.

*Python: log the exit IP every 10 minutes*

```python
import csv
import time
from datetime import datetime, timezone

import requests

PROXY = "http://USERNAME:PASSWORD@203.0.113.10: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](https://pinnedip.com/docs/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](https://pinnedip.com/guides/isp-ip-geolocation/).
- **The right IP, an unexpected provider**: look up its AS number with the [ISP and ASN guide](https://pinnedip.com/guides/check-ip-isp-asn/).

## 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.

---

PinnedIP: PinnedIP is a static ISP proxy provider for the United States, paid in crypto with no ID upload. Each IP is registered to a US internet provider, hosted in a data center and rented to you for 30 days.
