3.9 KiB
ZTE MF935 Router IP Rotation
Device
ZTE MF935 4G Mobile Hotspot (Vodafone Ukraine). Admin panel: http://192.168.0.1. UI language: Ukrainian.
Key Discovery
Simple disconnect/reconnect does NOT change the IP. Vodafone assigns a sticky IP based on the SIM card. The same IP is returned after reconnect even with 40+ seconds of disconnection.
Switching network mode forces a new IP allocation. The carrier's 4G and 3G pools are separate — switching between them always yields a fresh IP.
Procedure
Step 1: Disconnect
Navigate to http://192.168.0.1/index.html#home. Click the "Відєднати" (Disconnect) button. Verify: traffic shows 0MB, timer 00:00:00, button changes to "Підєднати" (Connect).
Step 2: Switch to 3G
Navigate to http://192.168.0.1/index.html#net_select. Settings are unlocked only while disconnected.
- Select "Тільки 3G" from the network mode dropdown
- Click "Застосувати" (Apply)
- Go back to home page — header should show "WCDMA" instead of "LTE"
- Click "Підєднати" (Connect)
- Wait ~8 seconds for connection
- Verify IP:
curl -s ifconfig.me— should differ from old IP
Step 3: Switch back to 4G (optional, for speed)
Repeat the procedure but select "Тільки 4G" instead of 3G. This gives ANOTHER fresh IP from the 4G pool.
- Disconnect
- Navigate to
#net_select - Select "Тільки 4G"
- Apply
- Go home — header shows "LTE"
- Connect
- Verify IP
Automation via Chrome DevTools
The entire procedure can be scripted through mcp__chrome_devtools__ tools:
1. navigate_page → http://192.168.0.1/index.html#home
2. take_snapshot → find "Відєднати" button uid
3. click → disconnect
4. navigate_page → http://192.168.0.1/index.html#net_select
5. take_snapshot → find combobox and "Застосувати" button
6. fill → select "Тільки 3G" (or "Тільки 4G")
7. click → "Застосувати"
8. navigate_page → http://192.168.0.1/index.html#home
9. take_snapshot → find "Підєднати" button
10. click → connect
11. evaluate_script → wait 8s
12. terminal → curl -s ifconfig.me
Pitfalls
- Settings locked while connected: The "Для зміни налаштувань відєднайтеся від мережі" message means you must disconnect first. All radio buttons and dropdowns are disabled while connected.
- Sticky IP on same mode reconnect: If you disconnect and reconnect on the same network mode (4G→4G or 3G→3G), the IP stays the same. MUST switch modes.
- Goform API rejected: Direct API calls to
/goform/goform_set_cmd_processwithDISCONNECT_NETWORK,CONNECT_NETWORK,REBOOT_DEVICEetc. return{"result":"failure"}— the API requires authentication. Use the browser UI instead. - 3G is slow: ~0.9 Mb/s download vs 8.8 Mb/s on 4G. Switch back to 4G after getting the new IP.
Tested IPs
| Date | Old IP | New IP | Method |
|---|---|---|---|
| 2026-08-10 | [REDACTED-IP] | [REDACTED-IP] | 4G→3G |
| 2026-08-10 | [REDACTED-IP] | [REDACTED-IP] | 3G→4G |
| 2026-08-10 | [REDACTED-IP] | [REDACTED-IP] | 4G disconnect only (unexpected — sticky IP failed this time) | | 2026-08-10 | [REDACTED-IP] | [REDACTED-IP] | 4G→3G | | 2026-08-10 | [REDACTED-IP] | (not tested) | 3G→4G (pending) |
All IPs are from Vodafone Ukraine's mobile pool (178.133.x.x and 178.150.x.x ranges for 3G/4G, 89.209.x.x for older 4G sessions).
Rate-limit bypass
Tokenharbor signup rate-limits by IP subnet. After ~4-5 signup attempts on a 4G IP, tokenharbor returns "Too many sign-ups from this network". The 178.x.x.x 4G subnet appears to share a rate-limit counter. Switching to 3G gives a different pool that bypasses the limit. Confirmed: 4G [REDACTED-IP] → rate-limited, 3G [REDACTED-IP] → signup succeeded. The 3G pool has a separate (or no) rate-limit counter.