ISP & Datacenter Proxy Best Practices
ISP proxies combine residential trust with datacenter speed. Hex Proxies operates ISP proxies across Comcast, Windstream, RCN, and Frontier networks with 100G transit and 400Gbps edge capacity. This guide covers best practices to maximize the speed, reliability, and effectiveness of your ISP proxy deployment.
Understanding Your ISP Proxy Infrastructure
When you purchase ISP proxies from Hex Proxies, you receive: - **Dedicated IPs**: Each IP is exclusively yours — no sharing - **Static assignment**: Same IP stays assigned for your plan duration - **ISP-registered**: IPs are registered to real ISPs (Comcast, Windstream, etc.) - **Datacenter-hosted**: IPs run on our server hardware with 100G transit
Best Practice 1: IP Rotation vs Dedicated Use
ISP proxies excel at both:
**Dedicated (one IP per task)**: ```python # Assign one IP to one account/task account_proxy = { "instagram-account-1": "http://user:pass@ip1.hexproxies.com:8080", "instagram-account-2": "http://user:pass@ip2.hexproxies.com:8080", } ```
**Rotated across your pool**: ```python import itertools
class ISPRotator: def __init__(self, proxy_ips: list[str]): self._cycle = itertools.cycle(proxy_ips)
def next(self) -> str: return next(self._cycle) ```
Best Practice 2: Speed Optimization
ISP proxies are fast — sub-50ms latency. Keep them fast:
- **Use HTTP/2** when available — multiplexing reduces connection overhead
- Keep connections alive — reuse TCP connections instead of opening new ones
- Minimize DNS lookups — cache DNS results client-side
- Use connection pooling — maintain persistent connections to the proxy server
# httpx automatically uses connection pooling and keep-alive proxy = "http://YOUR_USER:YOUR_PASS@gate.hexproxies.com:8080" with httpx.Client(proxy=proxy, http2=True, timeout=10) as client: # Connections are pooled and reused for url in urls: resp = client.get(url) ```
Best Practice 3: Protect Dedicated IPs
Your ISP IPs have clean reputation — keep them clean:
- **Never use dedicated IPs for aggressive scraping** of protected sites
- **Limit request rates** to 10-30 per minute per IP per domain
- Use realistic headers — ISP IPs are treated as real users, act like one
- Monitor block rates — if an IP gets blocked, stop using it for that domain immediately
Best Practice 4: Use ISP for Speed-Critical Tasks
ISP proxies shine where speed matters:
| Task | Why ISP | Expected Latency | |------|---------|-----------------| | Sneaker copping | Must checkout before sellout | <50ms proxy, <200ms total | | Flash sales | First-come-first-served | <50ms proxy, <200ms total | | Ticket purchasing | Speed determines success | <50ms proxy, <200ms total | | Financial data | Real-time pricing | <50ms proxy, <150ms total | | API monitoring | Low-latency polling | <50ms proxy, <100ms total |
Best Practice 5: Geographic Strategy
Hex Proxies ISP locations: - **Ashburn, VA**: Windstream, RCN, Frontier — closest to AWS us-east-1 and most US servers - **New York City**: Comcast — NYC financial and tech services - **San Francisco**: Comcast — West Coast tech services
Choose IPs in the location closest to your targets for minimal latency.
Best Practice 6: Failover Planning
Even dedicated IPs can occasionally face issues. Plan for failover:
@dataclass(frozen=True) class ISPProxy: ip: str location: str isp: str is_primary: bool
def build_failover_chain(proxies: list[ISPProxy]) -> list[ISPProxy]: """Order proxies: primary first, then by same ISP, then different ISP.""" primary = [p for p in proxies if p.is_primary] same_isp = [p for p in proxies if not p.is_primary and p.isp == primary[0].isp] if primary else [] other = [p for p in proxies if not p.is_primary and p not in same_isp] return [*primary, *same_isp, *other] ```
ISP vs Residential Decision Matrix
| Factor | ISP Proxy | Residential | |--------|-----------|-------------| | Speed | Sub-50ms | 100-300ms | | Bandwidth | Unlimited | Per-GB billing | | IP diversity | Limited to your pool | Thousands of IPs | | Trust level | High (ISP-registered) | High (residential) | | Best for | Speed + consistency | Diversity + scale | | Cost model | Per IP per month | Per GB |
Production Deployment Checklist
- [ ] Assign IPs to specific tasks/accounts
- [ ] Configure connection pooling and keep-alive
- [ ] Set per-domain rate limits (10-30 req/min)
- [ ] Monitor block rates per IP per domain
- [ ] Implement failover chain across your IP pool
- [ ] Log all proxy usage for debugging and optimization