独享代理(地区锁)-查询在用IP资源接口
## 1. 接口描述
接口请求域名: monopoly.proxy.qg.net。
本接口 (/query) 用于独享代理产品启用地区锁功能后查询在用IP资源的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| uuid | 否 | String | 查询指定的独占资源。支持多资源查询,按逗号隔开。比如:hn_sqdx2-1:ppp1,hn_sqdx2-1:ppp14。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ----------------------------------------------------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data | Array of [Monopoly](https://www.qg.net/doc/1839.html) | 独占资源列表。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://monopoly.proxy.qg.net/query?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": [
{
"uuid": "hn_sqdx2-1:ppp14",
"area": "河南省商丘市",
"isp": "电信",
"state": "在线",
"ip": "122.57.90.234",
"heartbeat": "2023-02-25 09:48:23",
"monopolize_time": "2023-02-25 09:45:10",
},
{
"uuid": "hn_sqdx2-1:ppp1",
"area": "河南省商丘市",
"isp": "电信",
"state": "等待中(30)",
"monopolize_time": "2023-02-25 09:45:10",
}
],
"request_id": "51024a8b-a8a5-4e78-9301-cb500a8c083e"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
独享代理-查询资源地区接口
## 1. 接口描述
接口请求域名: share.proxy.qg.net。
本接口 (/resources) 用于独享代理产品查询资源地区的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data | Array of [ResourceAreaISP](https://www.qg.net/doc/1839.html) | 资源地区列表。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://exclusive.proxy.qg.net/resources?key=<您的key信息>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": [
{
"area": "福建省泉州市",
"area_code": 350500,
"isp": "电信",
"isp_code": 1,
"available": false
},
{
"area": "河南省商丘市",
"area_code": 411400,
"isp": "电信",
"isp_code": 1,
"available": true
}
],
"request_id": "51024a8b-a8a5-4e78-9301-cb500a8c083e"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
独享代理-查询通道数接口
## 1. 接口描述
接口请求域名: exclusive.proxy.qg.net。
本接口 (/channels) 用于独享代理产品通道数查询的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data.toal | Integer | key的通道总数。 |
| data.idle | Integer | 空闲通道数。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://exclusive.proxy.qg.net/channels?key=<您的key信息>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": {
"total": 10,
"idle": 5
},
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
独享代理-替换IP资源接口
## 1. 接口描述
接口请求域名: exclusive.proxy.qg.net。
本接口 (/replace) 用于独享代理产品释放并重新提取IP资源的接口。
默认接口请求频率限制:60/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
备注:调用此接口后,之前提取的资源都会被释放掉!
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| ---------- | ---- | ------- | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| area | 否 | String | 按地区提取。支持多地区筛选,逗号隔开。比如:"350500,330700"。 |
| isp | 否 | Integer | 按运营商提取。
0: 不筛选
1: 电信
2: 移动
3: 联通 |
| keep_avlie | 否 | Integer | 资源存活时间,单位分钟。 |
| num | 否 | Integer | 提取个数,默认为1。 |
| distinct | 否 | Bool | 去重提取,默认为false。如果为true则不会提取到已经在使用的IP资源。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ------------ | ----------------------------------------------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data.task_id | String | 提取批次的ID。 |
| data.ips | Array of [IP](https://www.qg.net/doc/1839.html) | IP资源列表。 |
| data.num | Integer | 提取到的IP资源数量。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://exclusive.proxy.qg.net/replace?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": {
"task_id": "0LIKQ3S1_task",
"ips": [
{
"proxy_ip": "123.54.55.24",
"server": "123.54.55.24:59419",
"area": "河南省商丘市",
"isp": "电信",
"deadline": "2023-02-25 15:38:36"
}
],
"num": 1
},
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | -------------------------------------------------------- |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
| DELETE_LIMIT_EXCEEDED | 释放频率超出限制。 |
| NO_RESOURCE_FOUND | 资源不足。 |
| FAILED_OPERATION | 提取失败。 |
独享代理-查询在用IP资源接口
## 1. 接口描述
接口请求域名: exclusive.proxy.qg.net。
本接口 (/query) 用于独享代理产品查询在用的IP资源的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| task | 否 | String | 提取批次筛选。支持多批次筛选,用逗号隔开。比如:"Z5p2DKKCSyhocKEa,kAEaWHucf8iPXm0O"。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------------------------------------------------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data.tasks | Array of [Task](https://www.qg.net/doc/1839.html) | 提取批次列表。 |
| data.num | Integer | 提取批次数量。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://exclusive.proxy.qg.net/query?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": {
"tasks": {
"task_id": "Z5p2DKKCSyhocKEa",
"ips": [
{
"proxy_ip": "123.54.55.24",
"server": "123.54.55.24:59419",
"area": "河南省商丘市",
"isp": "电信",
"deadline": "2023-02-25 15:38:36"
}
],
"num": 1
},
"num": 1
},
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
独享代理-释放IP资源接口
## 1. 接口描述
接口请求域名: exclusive.proxy.qg.net。
本接口 (/delete) 用于独享代理产品释放IP资源的接口。
默认接口请求频率限制:<通道数> * 2 / 分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| task | 否 | String | 按提取批次释放。支持批量释放,用逗号隔开。比如:Z5p2DKKCSyhocKEa,xsQGWfoaX99WcYnU。 |
| ip | 否 | String | 按IP释放。支持批量释放,用逗号隔开。比如:129.123.7.89,23.11.112.51。 |
注意:task和ip必选其一。如果需要释放全部IP,用task='*'即可。
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------ | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://exclusive.proxy.qg.net/delete?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
| DELETE_LIMIT_EXCEEDED | 释放频率超出限制。 |
短效代理4种提取方式的区别
| |
**弹性提取** | **均匀提取** | **按量提取** | **通道提取 ** |
| ------------ | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- | ---------------------------- |
| **定义**
| 按每天提取的IP数计费
| 按每分钟提取的IP数计费
| 按使用的IP数计费
| 按同时在线的IP数计费
|
| **资源池** | 直连+中转* | 直连+中转 | 直连+中转 | 直连池/中转池/隧道池 三选一 |
| **可选套餐范围** | 选择每天IP数 1000-200W个 | 选择每分钟IP数 5-2000个 | 选择IP包 1W-50W | 选择通道数 1-1000 |
| **IP存活时长** | 1分钟-30分钟 | 1分钟-30分钟 | 1分钟-30分钟 | 1分钟-30分钟 |
| **特点** | 自由度高,每天可任意选择时间段集中使用,不浪费IP | 每分钟有固定可提取量,开发比通道更平滑 | 自由度高,有效期内可自由安排使用IP,适合短时突发作为补充 | 同时在线的IP数明确,成本较低 |
| **适合用户场景** | 每天集中时间段使用IP,或不定时使用IP的客户 | 每小时都需要使用IP的客户 | 需短时间内集中大量使用IP的客户 | 每天业务不间断的客户 |
| | [了解详情>](https://www.qg.net/doc/product/6_255_252/2250.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2252.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2251.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2253.html) |
*购买页中,仅通道提取保留多个资源池选项,其余提取方式将默认选中直连&中转的混合资源池。
国内4种代理产品的区别
| |
**短效代理 ** | **隧道代理** | **独享代理** | **静态代理** |
| ------------ | ------------------------------------------- | -------------------------------------- | ---------------------------------------------- | ------------------------------------------------ |
| **提取方式**
| 弹性/均匀/按量/通道提取
| 通道提取
| 通道提取
| 通道提取
|
| **资源池** | 可选直连池/中转池/隧道池 | 默认 | 可选直连池/中转池* | 默认 |
| **计费方式** | 依提取方式而定 [了解提取方式>](https://www.qg.net/doc/product/6_255_252/2250.html) | 按每秒可发的请求数计费 | 按同时在线的IP数计费 | 按同时在线的IP数计费 |
| **IP存活时长** | 1分钟-30分钟 | 每次请求换IP | 0-24小时 | 24小时起 |
| **单IP带宽峰值** | 2Mbps | 1Mbps | 10Mbps | 2Mbps |
| **适合哪些客户** | 针对IP需求量大且带宽要求不高的客户 | 针对代理IP量要求大,希望调用简单的客户 | 针对需要IP短时可用,对稳定性和品质要求高的客户 | 针对需要IP长期有效,对稳定性和品质要求超高的客户 |
| **产品优势** | 多种提取方式/存活时长可选,更灵活,性价比高 | 0代码接入,调用简单 | 动态独享,可灵活控制存活时长 | 静态独享,IP固定不变,稳定性极高 |
| | [了解详情>](https://www.qg.net/doc/product/6_255/1444.html) | [了解详情>](https://www.qg.net/doc/product/6_256_268/1443.html) | [了解详情>](https://www.qg.net/doc/product/6_257/1440.html) | [了解详情>](https://www.qg.net/doc/product/6_258/1445.html) |
*独享代理资源池目前与隧道代理/静态代理一样都为默认资源池,直连池和中转池正在开发中,敬请期待。
API概览
## 1 接口简介
青果代理IP提供了功能丰富的API接口,满足开发者在各种场景下的调用需求。
所有接口支持 HTTP 或者 HTTPS 请求,部分接口采用 GET 方法,部分接口采用 POST 方法;接口返回数据的格式支持文本、json、xml。
具体请参见接口文档。
## 2 API列表
- [短效代理](https://www.qg.net/doc/2254.html)
- [独享代理](https://www.qg.net/doc/2141.html)
- [静态代理](https://www.qg.net/doc/2143.html)
- [短效代理(全球HTTP)](https://www.qg.net/doc/2144.html)
- [隧道代理相关](https://www.qg.net/doc/1940.html)
## 3 测试代理可用性
### 3.1 生成API链接
对于代理提取API,您可以到提取工具在线生成API链接,内置到您的程序中:
[提取代理API链接生成 >](https://www.qg.net/tools/IPget.html "提取代理API链接生成 >>")
其他接口请查看API文档,获取接口url和参数说明,自己生成API链接。
### 3.2 测试API链接
**浏览器测试**
您可以把生成的API链接直接在浏览器里打开,查看返回结果。例如,您直接点击如下api链接
https://proxy.qg.net/query?Key=0B***607
**命令行测试**
如果您在linux系统下,可以通过curl命令请求API链接查看结果:
`curl "https://proxy.qg.net/allocate?Key=请改成您的Key"`
## 4 接口返回错误码
公共接口返回错误码
| 错误码 | 描述 |
| ------ | ------------------------- |
| -1 | 未知错误 |
| -10 | 参数不合法 |
| -11 | 请求过于频繁 |
| -12 | Authkey被封禁 |
| -13 | 当前客户端IP不在授权名单中 |
| -14 | Pwd不合法 |
| -15 | Authkey对应的业务无此权限 |
| -100 | 计划不存在或已过期 |
| -103 | 资源不足 |
| -104 | 申请资源失败 |
| -105 | 释放的IP数超过允许释放的IP数 |
## 5 代码样例
查看API调用的[代码样例 >](https://www.qg.net/doc/172.html)
隧道代理(固定时长)使用指南
## 1 步骤说明
1. 在开通隧道代理IP后,单击网站右上角的【控制台】,进入后台管理面板,在左侧栏目里选择【代理IP】-【按时/按量业务】,找到已经开通的隧道代理业务;
![image-20221119161844905](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2022-11-19/161846b898eee.png)![image-20230608102558525](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-06-08/102607639526b.png)
2. 隧道代理无须提取IP,接入隧道服务即可;
3. 参考[代码样例](https://www.qg.net/list/192.html)请求隧道代理;
4. 在程序中通过调用API接口获取代理,然后请求目标网站。
1. API调用需要验证,验证方式包括密钥验证和白名单验证,根据实际使用自主选择;
2. 密钥验证方式请求头带Authkey和Authpwd信息即可;
3. 添加白名单可以免密,添加白名单后大概在30s之后生效。
## 2 API列表
隧道不支持API的调用,只有白名单功能的API接口。
| 接口类型 | 接口 |
| ---------- | ------------------------------------------------------------ |
| 白名单管理 | [添加白名单IP](https://www.qg.net/doc/178.html "添加白名单IP")
[删除白名单IP](https://www.qg.net/doc/179.html "删除白名单IP")
[查询白名单IP](https://www.qg.net/doc/180.html "[查询白名单IP]") |
## 3 测试代理的可用性
隧道代理支持密钥验证和白名单两种验证方式,建议先在本机测试;
需要注意的是,隧道代理(固定时长)的同时可用请求不超过购买时选择的通道数,测试OK后就可以正常使用了。
[查看测试步骤 >](https://www.qg.net/doc/1574.html "查看测试步骤 >")
## 4 使用模式
隧道代理(固定时长)可以切换两种使用模式:云端模式、客户端模式。
云端模式指的是直接使用青果网络提供的隧道代理服务器,简单易用。
客户端模式指的是使用青果网络提供的隧道代理程序,部署在自己的机器上,适用性更好。
### 4.1 云端模式
云端模式支持在请求参数中指定自定义的通道名称。
通道的IP在有效期内保持不变,如果短时间内需要使用相同的IP,请使用相同的通道名称即可。
以下为简单的python代码示例:
```python
proxyUrl = "http://%(user)s:%(password)s:%(channel)s@%(server)s" % {
"user": authKey,
"password": password,
"channel": "channel-1",
"server": proxyAddr,
}
```
### 4.2 客户端模式
#### 4.2.1 安装并启用客户端
1. 使用SSH连接工具,连接到您的Linux服务器。[如何连接?](https://www.qg.net/doc/1801.html)
2. 根据系统执行相应命令开始安装
1. Centos安装脚本:`rpm -Uvh https://d.qg.net/qgproxy-client-1.0.0-release.x86_64.rpm`
2. Ubuntu安装脚本:`dpkg -i https://d.qg.net/qgproxy-client_1.0.0-release_amd64.deb`
3. 安装结果:![](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/191441a309a53.png)
3. 将自己Authkey和Authpwd写入到配置文件中并保存。`vi /etc/qgproxy-client/qgproxy-client.toml`![image-20230224180018515](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/191441b11a379.png)
4. 重新加载配置文件并启动服务:`systemctl daemon-reload && systemctl start qgproxy-client`
5. 查看服务状态:`systemctl status qgproxy-client.service`![image-20230224181319409](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/1914410cb122f.png)
6. 查看端口监听是否开启:`netstat -atnp |grep LISTEN`![image-20230224181420945](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/19144108cc127.png)
#### 4.2.2 使用线程池模式获取IP
每个爬虫线程访问固定的本地代理端口(默认30000端口起),由客户端来管理和绑定该端口对应的出口IP,每个端口绑定的出口IP在IP有效期内固定不变。详情如图所示:
![image-20230608134006330](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-06-08/134007d162258.png)
执行命令,测试查看出口IP地址:`curl -x 127.0.0.1:30000 d.qg.net/ip`
通过下图可以看到,30000端口和30001的出口IP不同,且在IP有效期内保持不变。
![image-20230224190127491](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/191441bb0a941.png)
#### 4.2.3 使用隧道模式获取IP
爬虫只需访问唯一的本地代理端口(默认20000端口),每个请求将随机分发到该端口映射的多个出口IP的其中之一。
![image-20230608134035701](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-06-08/1340378413a6d.png)
执行命令,测试查看出口IP地址:`curl -x 127.0.0.1:20000 d.qg.net/ip`
通过下图可以看到,每次请求获取到的IP是不同的。但是这个IP池的大小取决于您所购买的通道数数量。
![image-20230224185853571](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-02-24/191441356e8fe.png)
## 5 错误码一览表
| HTTP返回码 | 说明 |
| :--------- | :----------------------------------------------------------- |
| 400 | 客户端错误。客户端协议无法被识别; |
| 431 | 请求头过大。出现在http代理中,header头部信息过多导致; |
| 302 | 出现302一般有两种情况:
(1).客户端IP为海外IP,服务器会重定向到预警页面;
(2).客户端访问的目标站被拦截,比如银行网站、邮箱、社交软件等,服务器返回重定向到预警页面; |
| 407 | 授权错误,出现407一般有两种情况:
(1).白名单模式,可能是用户有多出口IP,没有全部添加到白名单;或可能连接使用IP资源,是添加白名单前获取的,白名单未对其生效;
(2).账密模式,可能是账密信息错误;
(3)共享IP产品中可能是IP已过期; |
| 408 | 目标站不可达。服务端与目标站建连失败,服务端不可达或者当前代理IP掉线; |
| 429 | 请求数超出。隧道产品中用户QPS大于购买的请求数;独享和共享产品中,用户当前的代理tcp连接超出限制数; |
| 508 | 代理目标站为代理IP地址导致死循环。一般不出现; |
| 503 | 当前代理协议不支持,比如ss代理协议; |
## 6 代理请求数据统计
代理请求数据统计包括IP请求统计,提供了对请求量和请求错误的统计分析。方便随时关注采集程序的运行情况,及时发现错误并修正。
同时IP请求统计还提供几种常见的错误类型分析,如请求成功、授权失败、请求数超出、连接超时等,助力数据高效采集。
![image-20221108103607172](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2022-11-08/103608ff884e9.png)