Mobile proxy testing & planning

How to Test Mobile Proxy IP Rotation

Check the IP reported by a destination, with timestamps and a known connection pattern. A rotation setting tells the gateway how to select an endpoint; your test needs to establish what the destination actually observed.

Get the local sampler ↓By Proxies.sx Team · Reviewed
How to Test Mobile Proxy IP Rotation. Proxies.sx logo and proxies.sx address on a dark background.

Decide which behavior you are testing

For a sticky-session test, keep the same session identifier and rotation mode across reconnects. For a timed-rotation test, sample before and after the documented interval. Write down the country, pool and mode alongside the results, without saving the password.

Proxies.sx documents sticky and timed modes auto5, auto10, auto20 and auto60. Include a sid when continuity across connections matters. The rotation cookbook explains endpoint selection; the rotation buying guide covers product choices.

An ordinary HTTP request may reuse an existing connection. A script that opens a new connection each time tests a different pattern from a browser holding a CONNECT tunnel open. Keep that difference in your test record.

Run the bounded local sampler

Download rotation-sampler.py. It uses Python 3 and curl, prompts for credentials and makes one request per sample to an HTTPS endpoint you supply. That endpoint must return a JSON object with an ip field containing one IPv4 or IPv6 address.

Run it against an endpoint you control or have permission to query. The default is six samples, with ten seconds between requests. For a ten-minute mode, choose a longer observation window; a short test cannot establish interval behavior.

python3 rotation-sampler.py --samples 12 --interval 60 > rotation.csv

Each sample launches a fresh curl process. The sampler uses a 15-second request limit, does not follow redirects and does not call a modem rotation API. It writes timestamps, HTTP status, observed IP and an error category to CSV. Credentials pass through curl’s standard input, not command-line arguments. Keep the resulting IP log private when sharing it would expose your infrastructure.

The download was checked with local fixtures, including repeated addresses and failed requests. We did not use it to measure paid mobile routes for this article. Your run consumes traffic and reveals the exit IP to the endpoint you choose.

Read the sequence without overclaiming

ObservationWhat to check next
The same IP appears after a reconnectConfirm the mode and interval. Different endpoints can share a public address, so a repeated address does not establish that endpoint selection stayed unchanged.
The IP changes during a sticky testCheck that the session ID remained identical. Carrier-side address changes are also possible.
An IP returns laterKeep it as a repeat in the sample. Count distinct observed addresses separately from total successful samples.
A request fails or returns invalid JSONRecord a failed sample. Do not treat an empty value as a new IP or silently remove it from the denominator.

Carrier-grade NAT allows subscribers to share public address space. It limits what a list of exit addresses can tell you about the underlying devices; RFC 6598 provides the shared-address-space context. A small sample cannot establish the size of a provider’s entire IP pool.

Check the exit, not just the socket peer

curl’s remote_ip reports the remote peer for its connection. When curl connects through an explicit proxy, that value can identify the proxy connection rather than the exit address seen by the target. The sampler reads the endpoint’s response body instead. See the curl manual for connection and output fields.

Use the same proxy configuration in the real application after this diagnostic. Compare a short reconnecting run with the application’s normal connection reuse. A successful echo request establishes an observed address for that request; it does not establish login continuity or acceptance by another destination.

Keep rotation and target success in one test record

Save the start and end times with the total samples, successful samples and distinct observed addresses. Keep failed samples in the file. Then run a small permitted task on the actual destination and record valid results and billed traffic. Use the bandwidth calculator to estimate cost from that full pilot.

If the address looks correct but its country does not, follow the location mismatch checks. If the proxy refuses authentication, resolve HTTP 407 before interpreting the rotation sequence.

Common questions

Does a new session ID guarantee a new public IP?

No. Endpoint selection and public-IP assignment are separate. Check observed addresses, and allow for carrier NAT and limited eligible stock.

How many IPs should my test see?

There is no fixed expected count without evidence for that route and time window. Report the distinct addresses you observed and the number of successful samples.

Sources and review scope

Official references checked on 12 October 2026. The procedures and worksheets are our suggested test method. Examples use illustrative inputs or local fixtures; they do not report live proxy performance.

Check current mobile stock before choosing a route. For API fields and agent setup, use the Pool Gateway documentation and agent service index.