Before blaming a provider (or a target site), run these checks. Replace USER:PASS@HOST:PORT with your details.
1. Does it connect, and what IP do you get?
curl -x http://USER:PASS@HOST:PORT https://api.ipify.orgYou should see the proxy's IP, not your own. For SOCKS5, use socks5h:// so DNS lookups also go through the proxy:
curl -x socks5h://USER:PASS@HOST:PORT https://api.ipify.org2. Is it in the right country, and what network is it on?
curl -x http://USER:PASS@HOST:PORT https://ipinfo.io/jsonCheck country/city, and org — a hosting company there means a datacenter IP even if you paid for residential.
3. Does it rotate (or stick) the way you expect?
for i in 1 2 3 4 5; do curl -s -x http://USER:PASS@HOST:PORT https://api.ipify.org; echo; doneRotating: different IPs. Sticky session: the same IP.
4. How fast is it?
curl -x http://USER:PASS@HOST:PORT -o /dev/null -s -w 'connect=%{time_connect}s tls=%{time_appconnect}s total=%{time_total}s\n' https://example.comRun it several times — residential speeds vary from request to request.
5. Does it leak your real IP in headers?
curl -x http://USER:PASS@HOST:PORT https://httpbin.org/headersIf you see X-Forwarded-For or Via with your real IP, it's a transparent proxy — don't use it for anything sensitive.
## 6. Test against your actual target
A proxy that passes all of the above can still be blocked by your target. Test with realistic headers and a low request rate before scaling up.
Python equivalent
import requests
proxy = "http://USER:PASS@HOST:PORT"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=30)
print(r.text)Note: the proxy URL usually starts with http:// even for HTTPS sites — the https key only says which traffic uses it.
Got a result you can't explain? Post the (redacted) output below.