分享页面
已经找到“” 的记录1749条
长效代理-查询通道数接口
## 1. 接口描述 接口请求域名: static.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://static.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. 接口描述 接口请求域名: static.proxy.qg.net。 本接口 (/delete) 是用于长效代理-静态型产品释放IP资源的接口。(动态型无此功能) 默认接口请求频率限制:每通道一周有两次释放机会。 推荐使用调试工具进行调试,[调试工具](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://static.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)。 | | KEY_BLOCK | Key被封禁。 | | REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 | | DELETE_LIMIT_EXCEEDED | 释放频率超出限制。 | | STATIC_DELETE_TIME_LIMIT | 静态资源需要24小时后才能释放。 |
长效代理-查询在用IP资源接口
## 1. 接口描述 接口请求域名: static.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) | 提取批次列表。
**注:Task结构中的IP结构中的server才是代理地址,proxy_ip是代理的真实出口IP。** | | data.num | Integer | 提取批次数量。 | | request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 | ## 4. 示例 #### 输入示例 ``` GET https://static.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. 接口描述 接口请求域名: static.proxy.qg.net。 本接口 (/get) 用于长效代理产品提取IP资源的接口。 默认接口请求频率限制:(通道数*5+10)次/分钟。 推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。 ## 2. 输入参数 | 参数名称 | 必选 | 类型 | 描述 | | -------- | ---- | ------- | ------------------------------------------------------------ | | key | 是 | String | 公共参数,产品唯一标识。 | | area | 否 | String | 按地区提取。 | | isp | 否 | Integer | 按运营商提取。
0: 不筛选
1: 电信
2: 移动
3: 联通 | | num | 否 | Integer | 提取个数,默认为1。 | ## 3. 输出参数 | 参数名称 | 类型 | 描述 | | ------------ | ----------------------------------------------- | ------------------------------------------------------------ | | code | String | 请求状态码。 | | data.task_id | String | 提取批次的ID。 | | data.ips | Array of [IP](https://www.qg.net/doc/1839.html) | IP资源列表。
**注:IP结构中的server才是代理地址,proxy_ip是代理的真实出口IP。** | | data.num | Integer | 提取到的IP资源数量。 | | request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 | ## 4. 示例 #### 输入示例 ``` GET https://static.proxy.qg.net/get?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/user/proxyIpManage)。 | | KEY_BLOCK | Key被封禁。 | | REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 | | NO_RESOURCE_FOUND | 资源不足。 | | FAILED_OPERATION | 提取失败。 |
长效代理-API接口介绍
## 1说明 通过编码使用长效代理主要有以下4步骤: 1.先在[提取工具](https://www.qg.net/tools/IPget.html)或[调试工具](https://www.qg.net/tools/IPdebug.html)上获取api接口; 2.使用白名单或账密进行授权验证; 3.进行代理测试;[查看测试步骤>>](https://www.qg.net/doc/1574.html "查看测试步骤") 4.参考[代码样例](https://www.qg.net/list/192.html)编写采集程序,使用代理IP。
## 2 API接口 长效代理API接口一览 | 接口类型 | API | 描述 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 资源相关 | - [get](https://www.qg.net/doc/product/6_258_274/1863.html)
- [delete](https://www.qg.net/doc/product/6_258_274/1862.html)
- [query](https://www.qg.net/doc/product/6_258_274/1861.html)
- [channels](https://www.qg.net/doc/product/6_258_274/1860.html)
- [resources](https://www.qg.net/doc/product/6_258_274/1859.html)
| - 提取IP资源
- 释放IP资源
- 查询在用IP资源
- 查询通道数
- 查询资源地区
| | 白名单相关 | -[whitelist/query](https://www.qg.net/doc/180.html "whitelist/query")
- [whitelist/add](https://www.qg.net/doc/178.html "whitelist/add")
- [whitelist/del](https://www.qg.net/doc/179.html "删除白名单")
| - 查询IP的白名单
- 添加IP的白名单
- 删除IP的白名单 |
使用青果网络远程插件登录Linux实例
# 1. 操作场景 本文介绍如何使用青果网络远程插件登录方式登录Linux实例。此处以PuTTY为例。 # 2. 适用本地操作系统 Windows # 3. 前提条件 - 请先安装好其中一种本地远程工具: - PuTTY:[立即下载](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) - SecureCRT:[立即下载](https://www.vandyke.com/products/securecrt/) - Xshell:[立即下载](https://www.xshellcn.com/xiazai.html) # 3. 操作步骤 1. 登录[青果网络控制台](https://www.qg.net/user/) 2. 在对应的产品列表页中找到需要登录的业务实例,点击“登录”按钮![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/8701415c-d45c-40b5-bd9a-2c2eaff55ded.png) 1. 在打开的远程登录窗口中,确认登录信息,并点击“登录” ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/af319121-db83-48ea-bc2c-3806a38a5d78.png) 1. 登录信息,系统会预先按照业务信息填写 2. 如果是初次使用,请先下载青果网络远程插件。[立即下载](https://storage.feikua.net/download/cloudremote/青果网络远程插件.zip) 2. 在浏览器中允许打开青果网络远程插件,即可登录成功。![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/0095c7e6-f473-448f-885d-b8030d0f463a.png) 3. 初次使用远程插件时,需要先配置本地工具的路径![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/636bd85a-bec9-4b0a-81cb-c3c895504346.png) 1. 登录成功则出现类似如下图所示界面:![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/8bb42047-8ab0-48be-898d-563adc3c1e63.png) # 4. 常见问题 - 机器刚开通时,需要一定时间开机,请等待机器开机后,再尝试登录
使用青果网络远程插件登录Windows实例
# 1. 操作场景 本文介绍如何使用青果网络远程插件登录方式登录Windows实例。 # 2. 适用本地操作系统 Windows # 3. 操作步骤 1. 登录[青果网络控制台](https://www.qg.net/user/) 2. 在对应的产品列表页中找到需要登录的业务实例,点击“登录”按钮![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/538b28a3-62e5-4ee8-b9a2-461bd4c00a3c.png) 3. 在打开的远程登录窗口中,确认登录信息,并点击“登录” ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/9347bd3c-bd66-4f93-860c-a6ffe86b3135.png) 1. 登录信息,系统会预先按照业务信息填写 2. 如果是初次使用,请先下载青果网络远程插件。[立即下载](https://storage.feikua.net/download/cloudremote/青果网络远程插件.zip) 4. 在浏览器中允许打开青果网络远程插件,即可登录成功。![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/0095c7e6-f473-448f-885d-b8030d0f463a.png) 1. 登录成功则出现类似如下图所示界面:![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/1e2a93a9-e574-4d12-a06b-8d3c614a0434.png) # 4. 常见问题 - 机器刚开通时,需要一定时间开机,请等待机器开机后,再尝试登录
Node语言代码示例
## nodejs http ```javascript const http = require("http"); const url = require("url"); const targetURL = url.parse("https://test.ipw.cn"); // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing const proxyIp = "您的代理IP"; const proxyPort = 端口号; const authKey = "请改成您的Key"; const password = "请改成您的AuthPwd"; const base64 = new Buffer.from(authKey + ":" + password).toString("base64"); const options = { host: proxyIp, port: proxyPort, path: targetURL, method: "GET", headers: { "Host": urlParsed.hostname, "Proxy-Authorization": "Basic " + base64 } }; http.request(options, function (resp) { console.log("response status code: " + resp.statusCode); resp.pipe(process.stdout); }).on("error", function (err) { console.log("request failed: " + err); }).end(); ``` ## nodejs request ```javascript const request = require("https://test.ipw.cn"); // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing const targetUrl = "https://api.ipify.org"; const proxyIp = "您的代理IP"; const proxyPort = 端口号; const authKey = "请改成您的Key"; const password = "请改成您的AuthPwd"; const proxyUrl = "http://" + authKey + ":" + password + "@" + proxyIp + ":" + proxyPort; const req = request.defaults({'proxy': proxyUrl}); const options = { url: targetUrl, headers: {} }; req.get(options, function (err, resp, body) { if (err) { return console.log(err); } console.log("response status code: " + resp.statusCode); console.log("response body: " + body); }).on("error", function (err) { console.log("request failed: " + err); }); ``` ## nodejs superagent ```javascript const request = require("superagent"); require("superagent-proxy")(request); const targetUrl = "https://test.ipw.cn"; // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing const proxyIp = "您的代理IP"; const proxyPort = 端口号; const authKey = "请改成您的Key"; const password = "请改成您的AuthPwd"; const proxyUrl = "http://" + authKey + ":" + password + "@" + proxyIp + ":" + proxyPort; request.get(targetUrl).proxy(proxyUrl).end(function onResponse(err, resp) { if (err) { return console.log(err); } console.log("response status code: " + resp.statusCode); console.log("response body: " + resp.text); }); ``` ## nodejs axios ```javascript const axios = require("axios") const {HttpsProxyAgent} = require("https-proxy-agent") const targetUrl = "https://test.ipw.cn" // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing const proxyIp = "您的代理IP" const proxyPort = 端口号 const authKey = "请改成您的Key" const password = "请改成您的AuthPwd" const proxy = new HttpsProxyAgent(`http://${authKey}:${password}@${proxyIp}:${proxyPort}`) axios.get(targetUrl, { httpAgent: proxy, httpsAgent: proxy, }).then(function (response) { console.log("response body: " + response.data) }).catch(function (error) { console.log("request failed: " + error) }).finally(function () { console.log("request finished.") }) // 如果目标站是HTTPS,则需要使用下面的代码进行代理请求 let httpsProxyAgent = require('https-proxy-agent'); var agent = new HttpsProxyAgent(`http://${authKey}:${password}@${proxyIp}:${proxyPort}`); var config = { url: "https://api.ipify.org", httpsAgent: agent } axios.request(config) .then(function(response) { console.log("response body: " + response.data) }).catch(function(error) { console.log("request failed: " + error) }) ```
隧道代理 Go 语言接入指南
## 概述 本文档将指引你进行隧道代理的接入,在此文档中使用到的术语将会在下方进行列出。 | 术语 | 解释 | | :------- | :----------------------------------------- | | 隧道 | 自动更换代理 IP 的代理服务 | | 固定时长 | 服务器将在固定时长后自动切换IP,例如1分钟 | | 通道 | 使用多个通道同时发起请求,每个通道的IP不同 | 隧道代理有多种使用方式,具体行为取决于套餐及模式。 - 普通模式 每次请求都自动切换IP - 普通模式打标记 普通模式下,希望多个HTTP请求保证代理IP相同,可以给多个请求的代理协议打上相同的标记,并标记这个代理IP的存活时间(不主动设置存活时间则默认为10秒) - 固定时长多通道模式 服务器定时切换IP,可同时使用多个通道发起请求,即可以同时使用多个IP ## 前置知识 在 go 语言中,通常使用 http.Client 进行 http/s 代理的设定与请求的发送,使用 http.NewRequest 进行请求的构建。 ### Proxy Url Scheme 由协议、用户名、密码、域名、端口几部分组成 例如 http 协议的代理 url ``` http://[user:password@]hostname:port ``` ## 使用 GO 接入 **以下内容假设读者具备基本的 Go 语言编程能力和对网络协议具有一定的了解。** ### 生成 url 普通模式 ```go link := fmt.Sprintf("http://%s:%s@%s", authKey, password, proxyServer) proxyURL, _ := url.Parse(link) ``` 普通模式打标记 ```go link := fmt.Sprintf("http://%s:%s:%s:%d@%s", authKey, password, "channel-1", 20, proxyServer) proxyURL, _ := url.Parse(link) ``` 固定时长多通道模式 ```go link := fmt.Sprintf("http://%s:%s:%s@%s", authKey, password, "channel-1", proxyServer) proxyURL, _ := url.Parse(link) ``` ### 构建 Client 后续将使用该 client 发起 request ```go client := http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } ``` ### 构建 HTTP/s GET 请求 以 https://api.ipify.org 为例。 因为已确认参数合法,因此构建不会发生错误,无需处理错误。 ``` request, _ := http.NewRequest("GET", "https://test.ipw.cn", nil) // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing ``` ### 执行已构建的 HTTP/s 请求 ```go response, err := client.Do(request) if err != nil { panic(err) } defer response.Body.Close() ``` ### 读取响应实体 response.Body 是 io.Reader 类型,需要手动进行读取 ```go body, err := io.ReadAll(response.Body) if err != nil { panic(err) } fmt.Println(string(body)) ``` ## 示例代码 ```go package main import ( "fmt" "io" "log" "net/http" "net/url" ) const ( authKey = "" password = "" server = "" channel = "channel-1" ) func main() { var link string if channel == "" { link = fmt.Sprintf("http://%s:%s@%s", authKey, password, server) } else { link = fmt.Sprintf("http://%s:%s:%s@%s", authKey, password, channel, server) } proxyURL, _ := url.Parse(link) client := http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } request, _ := http.NewRequest("GET", "https://test.ipw.cn", nil) // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing response, err := client.Do(request) if err != nil { panic(err) } defer response.Body.Close() body, err := io.ReadAll(response.Body) if err != nil { panic(err) } log.Println("response body", string(body)) } ```
C#语言代码示例
```c# string targetUrl = "https://test.ipw.cn"; // 如果上面目标站不可用,请使用ip.sb、ipinfo.io、ip-api.com、64.ipcheck.ing string proxyIp = "您的代理IP"; string proxyPort = "端口号"; string authKey = "请改成您的Key"; string password = "请改成您的AuthPwd"; WebProxy proxy = new WebProxy(string.Format("{0}:{1}", proxyIp, proxyPort), true); proxy.Credentials = new NetworkCredential(authKey, password); ServicePointManager.Expect100Continue = false; var request = WebRequest.Create(targetUrl) as HttpWebRequest; request.AllowAutoRedirect = true; request.KeepAlive = true; request.Method = "GET"; request.Proxy = proxy; request.Timeout = 10000; request.ServicePoint.ConnectionLimit = 16; using (var resp = request.GetResponse() as HttpWebResponse) using (var reader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8)){ string htmlStr = reader.ReadToEnd(); } ```

扫码添加专属客服

扫码关注公众号