见于
2025 年最佳代理服务器
满足各类需求的代理服务
住宅代理
住宅代理
1.75美元/GB起
适用于大规模匿名网页抓取、SEO监控及地域定向研究。
195+国家/地区可用
流量永不过期
灵活轮换
支持城市/州级定位
ISP代理
ISP代理
2.00美元/代理起
适用于电商自动化、广告验证及长会话稳定场景,兼具数据中心的速度与住宅代理的匿名性。
无限流量
独立使用,不共享
优质ISP供应商
支持SOCKS5协议
数据中心代理
数据中心代理
1.39美元/代理起
适用于对速度要求严苛的场景,如软件测试、数据抓取及基础设施监控等。
无限流量
60+地点可用
独立使用,不共享
99.9%运行时间保障
移动端代理
移动端代理
10.11美元/天起
依托450多万真实移动IP地址网络,适用于社交平台、移动应用程序QA及区域广告测试。
无限带宽
自动轮换开关
API接入
支持5G/4G/3G
轻松实现网页抓取的全套工具
性价比优势
花得更少,扩得更快
流量永不过期、定价透明且按使用量计费,让您掌控成本,不浪费未用流量。
可扩展性
为性能而生,随时可扩展
高速代理、精准地域定位及智能轮换功能,满足工程师自动化与优化所需的全套工具。
安全性
安全优先的架构设计
严格的KYC认证、IP地址白名单、双因素认证(2FA)及账户级权限管理,让团队全面掌控代理服务的访问与使用。
集成与API
专为集成而生,可轻松自动化
将IPRoyal与您正在使用的工具对接,或用强大的API构建专属自动化流程。
-
第三方集成
- 支持650+工具
- 与抓取工具、浏览器、自动化工具无缝配置
- 完全符合最新标准
查看全部集成 -
强大的API
curl -X GET https://resi-api.iproyal.com/v1/me \ -H "Authorization: Bearer <your_api_token>"<?php $api_token = '<your_api_token>'; $url = 'https://resi-api.iproyal.com/v1/me'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPGET, true); $headers = [ "Authorization: Bearer $api_token" ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } else { echo $response; } curl_close($ch); ?>import requests api_token = '<your_api_token>' url = 'https://resi-api.iproyal.com/v1/me' headers = { 'Authorization': f'Bearer {api_token}' } response = requests.get(url, headers=headers) print(response.text)const https = require('https'); const apiToken = '<your_api_token>'; const url = 'https://resi-api.iproyal.com/v1/me'; const options = { method: 'GET', headers: { 'Authorization': `Bearer ${apiToken}` } }; const req = https.request(url, options, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(data); }); }); req.on('error', (error) => { console.error('Error:', error.message); }); req.end();import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ApiRequest { public static void main(String[] args) { String apiToken = "<your_api_token>"; String urlString = "https://resi-api.iproyal.com/v1/me"; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Authorization", "Bearer " + apiToken); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println(content.toString()); } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } }using System; using System.Net.Http; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { string apiToken = "<your_api_token>"; string url = "https://resi-api.iproyal.com/v1/me"; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiToken}"); HttpResponseMessage response = await client.GetAsync(url); string responseText = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseText); } } }package main import ( "io" "log" "net/http" "fmt" ) const ( apiToken = "<your_api_token>" meURL = "https://resi-api.iproyal.com/v1/me" ) func main() { req, err := http.NewRequest(http.MethodGet, meURL, nil) if err != nil { log.Fatal("Error creating request:", err) } req.Header.Set("Authorization", "Bearer "+apiToken) client := &http.Client{} resp, err := client.Do(req) if err != nil { log.Fatal("Error making request:", err) } defer resp.Body.Close() responseBody, err := io.ReadAll(resp.Body) if err != nil { log.Fatal("Error reading response body:", err) } fmt.Println(string(responseBody)) }curl -X GET "https://apid.iproyal.com/v1/reseller/balance" \ -H "X-Access-Token: <your_access_token>" \ -H "Content-Type: application/json"<?php $api_token = '<your_access_token>'; $url = "https://apid.iproyal.com/v1/reseller/balance"; $options = [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "X-Access-Token: $api_token", 'Content-Type: application/json' ] ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } else { echo $response; } curl_close($ch); ?>import requests api_token = '<your_access_token>' url = 'https://apid.iproyal.com/v1/reseller/balance' headers = { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } response = requests.get(url, headers=headers) print(response.status_code) print(response.json())const https = require('https'); const api_token = '<your_access_token>'; const options = { hostname: 'apid.iproyal.com', path: '/v1/reseller/balance', method: 'GET', headers: { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } }; const req = https.request(options, (res) => { let responseData = ''; res.on('data', (chunk) => { responseData += chunk; }); res.on('end', () => { console.log(responseData); }); }); req.on('error', (error) => { console.error('Error:', error.message); }); req.end();import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ApiRequest { public static void main(String[] args) { String apiToken = "<your_access_token>"; String urlString = "https://apid.iproyal.com/v1/reseller/balance"; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("X-Access-Token", apiToken); connection.setRequestProperty("Content-Type", "application/json"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println("Response Body: " + content.toString()); } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } }using System; using System.Net.Http; using System.Text.Json; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { string apiToken = "<your_access_token>"; string url = "https://apid.iproyal.com/v1/reseller/balance"; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("X-Access-Token", apiToken); HttpResponseMessage response = await client.GetAsync(url); Console.WriteLine((int)response.StatusCode); string responseText = await response.Content.ReadAsStringAsync(); var jsonResponse = JsonSerializer.Deserialize<JsonElement>(responseText); Console.WriteLine(jsonResponse); } } }package main import ( "encoding/json" "fmt" "io" "log" "net/http" ) const ( apiToken = "<your_access_token>" url = "https://apid.iproyal.com/v1/reseller/balance" ) func main() { req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { log.Fatal("Error creating request:", err) } req.Header.Set("X-Access-Token", apiToken) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { log.Fatal("Error making request:", err) } defer resp.Body.Close() fmt.Println("Status Code:", resp.StatusCode) responseBody, err := io.ReadAll(resp.Body) if err != nil { log.Fatal("Error reading response body:", err) } fmt.Printf(string(responseBody)) }curl -X GET "https://apid.iproyal.com/v1/reseller/balance" \ -H "X-Access-Token: <your_access_token>" \ -H "Content-Type: application/json"<?php $api_token = '<your_access_token>'; $url = "https://apid.iproyal.com/v1/reseller/balance"; $options = [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "X-Access-Token: $api_token", 'Content-Type: application/json' ] ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } else { echo $response; } curl_close($ch); ?>import requests api_token = '<your_access_token>' url = 'https://apid.iproyal.com/v1/reseller/balance' headers = { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } response = requests.get(url, headers=headers) print(response.status_code) print(response.json())const https = require('https'); const api_token = '<your_access_token>'; const options = { hostname: 'apid.iproyal.com', path: '/v1/reseller/balance', method: 'GET', headers: { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } }; const req = https.request(options, (res) => { let responseData = ''; res.on('data', (chunk) => { responseData += chunk; }); res.on('end', () => { console.log(responseData); }); }); req.on('error', (error) => { console.error('Error:', error.message); }); req.end();import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ApiRequest { public static void main(String[] args) { String apiToken = "<your_access_token>"; String urlString = "https://apid.iproyal.com/v1/reseller/balance"; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("X-Access-Token", apiToken); connection.setRequestProperty("Content-Type", "application/json"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println("Response Body: " + content.toString()); } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } }using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json.Linq; class Program { static async Task Main(string[] args) { string apiToken = "<your_access_token>"; string url = "https://apid.iproyal.com/v1/reseller/balance"; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("X-Access-Token", apiToken); HttpResponseMessage response = await client.GetAsync(url); Console.WriteLine((int)response.StatusCode); string responseText = await response.Content.ReadAsStringAsync(); var jsonResponse = JObject.Parse(responseText); Console.WriteLine(jsonResponse); } } }package main import ( "encoding/json" "fmt" "io" "log" "net/http" ) const ( apiToken = "<your_access_token>" url = "https://apid.iproyal.com/v1/reseller/balance" ) func main() { req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { log.Fatal("Error creating request:", err) } req.Header.Set("X-Access-Token", apiToken) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { log.Fatal("Error making request:", err) } defer resp.Body.Close() fmt.Println("Status Code:", resp.StatusCode) responseBody, err := io.ReadAll(resp.Body) if err != nil { log.Fatal("Error reading response body:", err) } var jsonResponse map[string]interface{} err = json.Unmarshal(responseBody, &jsonResponse) if err != nil { log.Fatal("Error unmarshaling JSON:", err) } fmt.Printf("%+v\n", jsonResponse) }curl -X GET "https://apid.iproyal.com/v1/reseller/balance" \ -H "X-Access-Token: <your_access_token>" \ -H "Content-Type: application/json"<?php $api_token = '<your_access_token>'; $url = "https://apid.iproyal.com/v1/reseller/balance"; $options = [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "X-Access-Token: $api_token", 'Content-Type: application/json' ] ]; $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } else { echo $response; } curl_close($ch); ?>import requests api_token = '<your_access_token>' url = 'https://apid.iproyal.com/v1/reseller/balance' headers = { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } response = requests.get(url, headers=headers) print(response.status_code) print(response.json())const https = require('https'); const api_token = '<your_access_token>'; const options = { hostname: 'apid.iproyal.com', path: '/v1/reseller/balance', method: 'GET', headers: { 'X-Access-Token': api_token, 'Content-Type': 'application/json' } }; const req = https.request(options, (res) => { let responseData = ''; res.on('data', (chunk) => { responseData += chunk; }); res.on('end', () => { console.log(responseData); }); }); req.on('error', (error) => { console.error('Error:', error.message); }); req.end();import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ApiRequest { public static void main(String[] args) { String apiToken = "<your_access_token>"; String urlString = "https://apid.iproyal.com/v1/reseller/balance"; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("X-Access-Token", apiToken); connection.setRequestProperty("Content-Type", "application/json"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); System.out.println("Response Body: " + content.toString()); } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } }using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json.Linq; class Program { static async Task Main(string[] args) { string apiToken = "<your_access_token>"; string url = "https://apid.iproyal.com/v1/reseller/balance"; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("X-Access-Token", apiToken); HttpResponseMessage response = await client.GetAsync(url); Console.WriteLine((int)response.StatusCode); string responseText = await response.Content.ReadAsStringAsync(); var jsonResponse = JObject.Parse(responseText); Console.WriteLine(jsonResponse); } } }package main import ( "encoding/json" "fmt" "io" "log" "net/http" ) const ( apiToken = "<your_access_token>" url = "https://apid.iproyal.com/v1/reseller/balance" ) func main() { req, err := http.NewRequest(http.MethodGet, url, nil) if err != nil { log.Fatal("Error creating request:", err) } req.Header.Set("X-Access-Token", apiToken) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { log.Fatal("Error making request:", err) } defer resp.Body.Close() fmt.Println("Status Code:", resp.StatusCode) responseBody, err := io.ReadAll(resp.Body) if err != nil { log.Fatal("Error reading response body:", err) } var jsonResponse map[string]interface{} err = json.Unmarshal(responseBody, &jsonResponse) if err != nil { log.Fatal("Error unmarshaling JSON:", err) } fmt.Printf("%+v\n", jsonResponse) }- 程序化订购与用户管理
- 多地点支持
- 高级地域定位(城市/州级)
查看API文档
特征
为业界领先者打造的可靠工具
通过安全访问、用户角色、详细日志及API优先工作流,实现大规模代理管理。
企业如何使用我们的代理服务
应对日常代理服务挑战的企业级解决方案
可扩展的控制与洞察
通过实时分析、项目级跟踪及精细化团队权限,全面掌控代理服务使用。一站式控制面板中轻松监控带宽、设置限额并管理访问。
企业级运行时间保障
无中断运行大规模抓取、测试与自动化任务。内置冗余设计且无第三方依赖,确保所有项目99.9%的运行时间。
精准地域定位
在住宅、ISP及数据中心代理服务中实现城市与州级精准定位。无论运行本地化活动还是测试地域敏感平台,均可全面掌控定位。
立即购买
荣誉认证






