## 在哪里购买?我想先测试一下怎么办? 我们为新用户提供6小时免费试用,马上联系客服开通试用。 另外,所有产品均提供包天(独享产品除外)套餐,用户可购买体验。[ 进入购买页面 >](https://www.qg.net/business/proxyip.html) ## 可以提供发票吗? - 可以的,购买后可直接在会员中心--财务管理--发票管理去[申请发票 >](https://www.qg.net/user/bill/apply)。 - 普票提供电子发票,您可自己在开票记录中下载; - 专票提供纸质发票,我们会在5个工作日内开具发票并寄送到贵公司。 ## 我无法用支付宝或微信在线支付怎么办? 您还可以线下汇款,支持银行卡转账,在会员中心--财务管理--充值管理中查看线下转账信息和转账流程。 ![img](https://cos.qg.net/uploads/image/20210830/cb6e79d0fc16c901fef7a54923752786.png) ## 购买后可以退款吗? 除了日付周付业务订单,满足退款条件是可以申请退款的。 对于满足条件的新购测试订单用户可享受无理由退款政策,其他情况享受常规退款政策。 ## 无理由退款政策 - 满足退款条件的订单7天无理由退款; ## 常规退款政策 - 订单7天内可申请按剩余使用时长退款,超过时间不支持退款; - 退款金额 = 订单金额 - 已使用时长扣除金额。 ## 购买后能更换产品吗? 订单支付成功后是无法更换产品的; 如果您在使用中发现已购买的产品不适合,请申请退款后重新购买其它产品。
定义:违反国家政策法规及《青果网络服务协议》相关协议、规则,涉及黄、赌、毒、低俗、色情、暴力、侵权等违规内容,如下:
(1)违反宪法确定的基本原则的。
(2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的。
(3)损害国家荣誉和利益的。
(4)煽动民族仇恨、民族歧视,破坏民族团结的。
(5)破坏国家宗教政策,宣扬邪教和封建迷信的。
(6)散布谣言,扰乱社会秩序,破坏社会稳定的。
(7)散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的。
(8)侮辱或者诽谤他人,侵害他人合法权益的。
(9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序。
(10)以非法民间组织名义活动的。
(11)含有侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的内容。
(12)涉及他人隐私、个人信息或资料的内容。
(13)发表、传送、传播骚扰信息、广告信息及垃圾信息或含有任何性或性暗示的内容。
(14)含有法律、行政法规禁止的其他内容的。
定义:违反国家政策法规及《青果网络服务协议》相关协议、规则,使用青果网络产品进行网络恶意行为的,如下:
(1)实施网络拒绝服务攻击、黑客攻击、网络扫描、恶意爬虫等。
(2)实施网络欺诈,网络钓鱼等。
(3)发送垃圾邮件,钓鱼邮件。
(4)传播病毒木马,非法控制其他计算机。
(5)违规部署境内获取境外非法信息的工具等。
(6)因应用遭受大规模 DDoS 攻击影响平台其他开发者正常服务。
根据《互联网信息服务管理办法》第十五条,互联网信息服务提供者不得制作、复制、发布、传播含有下列内容的信息:
(一)反对宪法所确定的基本原则的。
(二)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的。
(三)损害国家荣誉和利益的。
(四)煽动民族仇恨、民族歧视,破坏民族团结的。
(五)破坏国家宗教政策,宣扬邪教和封建迷信的。
(六)散布谣言,扰乱社会秩序,破坏社会稳定的。
(七)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的。
(八)侮辱或者诽谤他人,侵害他人合法权益的。
(九)含有法律、行政法规禁止的其他内容的。
部分违规类型说明如下:
包括但不限于以下违规内容的信息:
《全国整治互联网低俗之风专项行动方案》中明确的低俗内容:
(1)表现或隐晦表现性行为、令人产生性联想、具有挑逗性或者污辱性的内容。
(2)对人体性部位的直接暴露和描写。
(3)对性行为、性过程、性方式的描述或者带有性暗示、性挑逗的语言。
(4)对性部位描述、暴露,或者只用很小遮盖物的内容。
(5)全身或者隐私部位未着衣物,仅用肢体掩盖隐私部位的内容。
(6)带有侵犯个人隐私性质的走光、偷拍、漏点等内容。
(7)以挑逗性标题吸引点击的。
(8)相关部门禁止传播的色情、低俗小说,音视频内容,包括一些电影的删节片段。
(9)一夜情、换妻、SM 等不正当交友信息。
(10)情色动漫。
(11)宣扬血腥暴力、恶意谩骂、侮辱他人等内容。
(12)非法“性药品”广告和性病治疗广告。
(13)未经他人允许或利用“人肉搜索”恶意传播他人隐私信息。
相关法律法规参考:《中华人民共和国治安管理处罚法》、《中华人民共和国刑法》、《全国人民代表大会常务委员会关于维护互联网安全的决定》。
包括但不限于以下违规内容的信息:
相关法律法规参考: 《中华人民共和国治安管理处罚法》、《中华人民共和国刑法》。
包括但不限于以下违规内容的信息:
相关法律法规参考: 《中华人民共和国治安管理处罚法》、《中华人民共和国刑法》、《全国人民代表大会常务委员会关于维护互联网安全的决定》。
包括但不限于以下违规内容的信息:
相关法律法规参考: 《中华人民共和国网络安全法》、《计算机信息网络国际互联网安全保护管理办法》、《中国公用计算机互联网国际联网管理办法》、
、《国际通信出入口局管理办法》、《中华人民共和国刑法》 、《关于办理扰乱无线电通讯管理秩序等刑事案件适用法律若干问题的解释》、《中华人民共和国治安管理处罚法》 、《关于依法办理非法生产销售使用“伪基站”设备案件的意见》。
包括但不限于以下违规内容的信息:
相关法律法规参考: 《中华人民共和国刑法》 、《中华人民共和国刑法》、《电信条例》、
《中华人民共和国反不正当竞争法》、
《中华人民共和国烟草专卖法》、《中华人民共和国烟草专卖法实施条例》。
包括但不限于以下违规内容的信息:
相关法律法规参考: 《最高人民法院、最高人民检察院关于办理诈骗刑事案件具体应用法律若干问题的解释》 、《中华人民共和国刑法》、《中华人民共和国著作权法》、《全国人民代表大会常务委员会关于维护互联网安全的决定》。
包括但不限于以下违规内容的信息:
相关法律法规参考:《中华人民共和国刑法》、《中华人民共和国著作权法》、《全国人民代表大会常务委员会关于维护互联网安全的决定》。
本文将针对Windows7系统如何使用代理IP进行详细说明,具体步骤如下: 右击桌面右下角网络,选择【打开网络和共享中心】; ![img](https://cos.qg.net/uploads/image/20210811/69306545e3e76f32f25c89380cb6d528.png) 点击【Internet选项】; ![img](https://cos.qg.net/uploads/image/20210811/340ce90f38e01d2aeba08e00864a4457.png) 点击【连接】,在点击【局域网设置】; ![img](https://cos.qg.net/uploads/image/20210811/c0599633d8aac8cdd03630c2b07fbcc6.png) 在代理服务器框内输入地址和端口,地址为申请到的代理IP地址,端口为申请到代理IP的端口,点击【确定】即可 ; ![img](https://cos.qg.net/uploads/image/20210811/0d851717ca71ced5567e9c27005fcd9b.png) 打开浏览器,自动弹出要输入用户名和密码的窗口,填入用户名(AuthKey)密码(AuthPwd); ![img](https://cos.qg.net/uploads/image/20210811/8efad5320f22fcb30da006adf1876ce2.png) 用浏览器搜索IP,测试是否代理成功。 ![img](https://cos.qg.net/uploads/image/20210811/72fa4d4625c6a67554ab3750ebdc0568.png)
```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(); } ```
## 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) }) ```
青果为有经验的开发者提供多种API接口及代码示例,以协助开发者更便利地使用代理。 本篇仅以【提取IP】这一操作为例,介绍如何使用API接口-代码方式来使用代理。 ## 步骤总览 ![api2](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-12-16%2F153708e85f5ad.png) ## 一、API鉴权与代理授权 青果支持开发者对API鉴权和代理授权验证进行自主管理,以下介绍这一阶段的操作 API鉴权指是指在访问API接口时对用户进行身份验证和权限检查,以确保API接口的安全性和可靠性。 用户可根据意愿选择开启和关闭API鉴权(默认关闭),青果提供的鉴权方式有密码和白名单两种,在对应业务【操作】-【业务设置】-【API鉴权】中进行设置即可。 ![image-20241216145626144](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-12-16%2F1456261cfce8f.png) 代理授权验证是指对代理身份进行验证,只有通过对应信息才能使用该代理IP,确保您的使用权益和安全性。 青果代理IP支持白名单和帐密两种验证方式,可自主选择使用。 白名单模式,即把要实现代理的服务器IP添加进代理白名单中,后续使用该IP连接代理就能成功; 账密模式,即先获取该代理业务的账号密码信息,连接代理时填入账密进行验证就可使用代理。 相关入口和信息在业务管理页面可看到。 ![image-20240425113427455](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-25%2F113427470a7d8.png) 详细步骤可查看>[如何使用API鉴权](https://www.qg.net/doc/2283.html)、[代理验证](https://www.qg.net/doc/1574.html) ## 二、获取api接口 青果给开发者提供两种方式来获得api接口 ① 使用调试工具/提取工具 调试工具是青果为开发者推出的快速获取接口&调试的简便工具,传送门[>>调试工具](https://www.qg.net/tools/IPdebug.html) 使用调试工具,用户需要先在左侧栏目中选好产品及接口类型,并在右侧表格的参数值列中填写所需信息,便可在页面上方看到完整的【请求地址】,这便是提取IP的API接口。 点击【发送】还能快速调试,查看响应结果,确认该代理接口是否可用。 ![image-20240425151330263](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-25%2F151330048e875.png) 调试工具除了有提取IP接口,还提供查询在用IP、资源池、资源地区等接口。 若只需要提取IP,也可以使用提取工具,进行简单的选择便可以获取一样的接口链接。传送门[>>提取工具 ](https://www.qg.net/tools/IPget.html) ![image-20240425151955693](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-25%2F1519556890211.png) ② 查看api接口文档 除了简便工具,开发者也可以通过更原始的接口文档,自主编写所需的接口链接。 **[独享代理API接口文档 >](https://www.qg.net/doc/product/6_257_271_272/2141.html)** **[独享代理(地区锁)API接口文档 > ](https://www.qg.net/doc/product/6_257_271_273/2142.html)** ## 三、代理测试 在代理服务器中打开命令行,输入相应的代理信息进行运行,若响应成功,则代理可用。 以下图为例,通过curl命令测试账密模式的代理结果,查询IP并成功响应。 `curl -x http://{authkey}:{authpwd}@{118.92.69.112}:{32105} {targetUrl}` ![image-20240426180650605](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-26%2F1806504f4e31e.png) 若响应不成功,可对应[错误码表](https://www.qg.net/doc/1838.html),排查问题。 ## 四、编写采集程序 测试代理可用后,便可开始编写代理采集程序了。 青果提供了多种编程语言的代码示例以及SDK下载包供开发者参考, 详情查看 - [SDK下载](https://www.qg.net/doc/sdk/9_230/1745.html) - [C语言代码示例](https://www.qg.net/doc/sdk/9_230/1694.html) - [Go语言代码示例](https://www.qg.net/doc/sdk/9_230/1695.html) - [PHP语言代码示例](https://www.qg.net/doc/sdk/9_230/1696.html) - [Python语言代码示例](https://www.qg.net/doc/sdk/9_230/1697.html) - [Java语言代码示例](https://www.qg.net/doc/sdk/9_230/1698.html) - [Shell语言代码示例](https://www.qg.net/doc/sdk/9_230/1699.html) - [C#语言代码示例](https://www.qg.net/doc/sdk/9_230/1700.html) - [Node语言代码示例](https://www.qg.net/doc/sdk/9_230/1701.html) **注:**青果代理IP产品都有相对应的IP存活周期,其有效时长是从提取到IP时算起,超过这个时长IP会失效。
## 概述
购买完代理产品后,用户在使用代理IP的过程中,很多代理资源查询或代理使用,如替换、释放、通道配额等都需要在编程环境中才能调试运行获得,操作上存在局限性,调试工具则可以方便用户可以直接线上简单对接调试,便捷用户操作成本和缩减时间成本。
## 工具说明
### 2.1 请求方式
请求方式包括POST和GET,默认POST请求,根据自己的需求选择;右侧网址则是接口网址完整信息,包括选择的key、接口方法等参数信息。
![image-20221021142244154](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2022-10-21/142245b7e321f.png)
### 2.2 key
key为必选项,是对接接口的必要信息。key的选择根据登录状态不同,可操作性不同。未登录时,需手动输入key值,已登录时,可下拉选择已购买的代理业务key,key信息附带业务资源配置和业务备注信息,方便辨别业务。
未登录状态:
![image-20221021150143164](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2022-10-21/150144cfca96b.png)
已登录状态:
![image-20221021150245490](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2022-10-21/150247313c9a5.png)
### 2.3 接口方法
接口方法主要是选择要调试的接口类型,包括资源相关、IP白名单、信息查询三大模块,各个接口说明详情如下图:
| 接口类型 | API | 描述 |
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 通用资源管理相关 | - [allocate](https://www.qg.net/doc/174.html "资源申请")
- [extract](https://www.qg.net/doc/1504.html "获取IP资源池")
- [replace](https://www.qg.net/doc/297.html "更换IP资源")
- [release](https://www.qg.net/doc/176.html "释放资源")
- [query](https://www.qg.net/doc/175.html "资源查询") | - 调用 allocate申请代理IP资源
- 调用extract获取IP资源池全部可用的IP信息
- 调用replace用于释放并申请新的代理IP,更换IP资源
- 调用release释放申请到的IP,以便于再次进行IP申请
- 调用query查询用户可用的代理IP资源列表 |
| 独占代理专用相关 | - [monopolize_resources](https://www.qg.net/doc/1559.html )
- [monopolize_resources](https://www.qg.net/doc/1560.html)
- [monopolize_resources](https://www.qg.net/doc/1562.html)
- [monopolize_resources/newest_ips](https://www.qg.net/doc/1561.html )
-[monopolize_resources/idle](https://www.qg.net/doc/1563.html) | - 用POST调用接口申请独占资源
-用GET调用接口查询可用的独占资源
- 用DELETE调用接口释放独占资源
-用PUT调用接口请求重拨独占资源
-用GET调用接口查询空闲的独占资源 |
| 白名单管理相关 | - [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 "删除白名单")
| - 调用 whitelist/query用于查询IP的白名单
- 调用whitelist/add用于添加IP的白名单
- 调用whitelist/del用于删除IP的白名单 |
| 资源信息查询 | - [info/quota](https://www.qg.net/doc/181.html "info/quota")
- [resources](https://www.qg.net/doc/177.html "查询区域资源") | - 调用 info/quota查询IP提取余量
- 调用resources查询平台可用的代理IP资源列表 |
### 2.4 参数类型
调试工具中各个参数根据不同的接口类型对应显示,各个参数有不同的含义,详情如下:
| 参数名 | 是否必选 | 描述 |
| :------------ | :------- | ------------------------------------------------------------ |
| Key | 是 | 要申请IP的业务的Key值,下拉选择即可; |
| IP | 是 | 代理IP;多个以逗号分割;*代表全部; |
| Num | 否 | 申请的IP个数,默认1个,最大不超过套餐内IP数量最大值; |
| KeepAlive | 否 | IP生存周期,其中独享默认24小时,短效默认购买的套餐存活周期时长; |
| AreaId | 否 | 区域ID;默认随机; |
| ISP | 否 | 运营商ID;默认随机;1:电信,2:移动,3:联通,4:BGP |
| Detail | 否 | 是否获取代理IP的详情,默认为 0关闭,1为开启; |
| Distinct | 否 | 申请的IP是否去重,默认为0不去重,1为开启去重;短效代理、独享代理适用。 |
| DataFormat | 否 | 数据格式,本接口取值:json、html、txt ,默认为 json格式 |
| DataSeparator | 否 | 分隔符,自定义 |
### 2.5 结果参数说明
点击“测试”,右侧文本框区域显示接口请求结果,返回结果参数说明:
| 参数名 | 描述 |
| :-------- | -------------------------------------------------- |
| Code | 申请IP结果编码:0(成功)-1(失败)。 |
| TaskID | 接口请求任务ID,可通过该IP释放该任务所申请到的IP; |
| Total | 获取到的代理IP总数量 |
| Available | 获取到的代理IP可用数量 |
| Used | 获取到代理IP已使用数量 |
| Num | 申请的代理IP数量 |
| TotalNum | 总IP数,主要是资源查询 |
| Data | 代理IP数据信息,包含节点IP、端口、失效日期 |
| Msg | 公共参数,本接口取值:区域ID. |
青果隧道代理与其他形式的代理IP不同,不需要API接口即可连接使用代理IP,因此省去了获取IP和管理IP池等动作。以下介绍如何用代码方式,快速使用隧道代理。 ## 步骤总览 ![image-20240506110951591](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-05-06%2F110951e2b8889.png) ## 一、获取隧道地址 1.在青果完成产品购买后,就会自动进入控制后台,看到如以下的页面,产品列中就有隧道地址; ![image-20240429165920934](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F165921b79228f.png) **请注意,**目前国内代理IP和全球HTTP的产品,除了按量提取对应的套餐是按量业务之外,其他产品都属于按时业务。 ## 二、授权验证 获取到隧道地址之后,还需要有授权验证才能使用代理。隧道代理支持白名单和帐密两种验证方式,可自主选择使用。 白名单模式,即把要实现代理的服务器IP添加进代理白名单中,后续使用该IP连接代理就能成功; 账密模式,即先获取该代理业务的账号密码信息,连接代理时填入账密进行验证就可使用代理。 ![image-20240429170736889](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F170736df1d19c.png) 详细步骤可查看[代理验证 >](https://www.qg.net/doc/use/8_244/1574.html) ## 三、代理测试 在代理服务器中打开命令行,输入相应的代理信息进行运行,若响应成功,则代理可用。 以下图为例,通过curl命令测试账密模式的代理结果,查询IP并成功响应。 `curl -x http://{authkey}:{authpwd}@隧道地址 {targetUrl}` ![image-20240429171647434](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F171647213d98a.png) 若响应不成功,可对应[错误码表](https://www.qg.net/doc/1838.html),排查问题。 ## 四、编写采集程序 测试代理可用后,便可开始编写代理采集程序了。 青果提供了多种编程语言的代码示例以及SDK下载包供开发者参考, 详情查看 - [SDK下载](https://www.qg.net/doc/sdk/9_230/1745.html) - [隧道代理 Go 语言接入指南](https://www.qg.net/doc/1872.html) - [隧道代理 Python 语言接入指南](https://www.qg.net/doc/1879.html) **注:**青果代理IP产品都有相对应的IP存活周期,其有效时长是从提取到IP时算起,超过这个时长IP会失效。
## 步骤总览
![image-20240429171152960](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F1711528fd4aa6.png)
**注:若使用白名单验证模式,请先添加白名单再进行API接口获取。**
## 一、获取隧道地址
1.在开通隧道代理(全球HTTP)后,就会进入后台管理面板,会看到如以下画面。在业务列表中,可以看到对应的隧道地址。
隧道代理特殊的地方就在于不需要提取和管理大量IP,只需要拿到1个隧道地址便可直接在使用过程中获得所需动态IP,获取隧道地址就近似于获取其他代理产品的IP地址与端口。
![image-20240429165920934](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F165921b79228f.png)
**请注意,**目前国内代理IP和全球HTTP的产品,除了按量提取对应的套餐是按量业务之外,其他产品都属于按时业务。
#### 二、授权验证
获取隧道地址之后,还需要有授权验证才能使用代理。青果代理支持白名单和帐密两种验证方式,可自主选择使用。
白名单模式,即把要实现代理的服务器IP添加进代理白名单中,后续使用该IP连接代理就能成功;
账密模式,即先获取该代理业务的账号密码信息,连接代理时填入账密进行验证就可使用代理。
![image-20240429170736889](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F170736df1d19c.png)
详细步骤可查看[代理验证](https://www.qg.net/doc/use/8_244/1574.html)
##三、代理测试
在代理服务器中打开命令行,输入相应的代理信息进行运行,若响应成功,则代理可用。
以下图为例,通过curl命令测试账密模式的代理结果,查询IP并成功响应。
`curl -x http://{authkey}:{authpwd}@隧道地址 {targetUrl}`
![image-20240429171647434](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads%2Fimage%2F2024-04-29%2F171647213d98a.png)
若使用白名单模式,不需要添加authkey和authpwd。
`curl -x {隧道服务器} {目标url}`
例子 curl -x overseas.tunnel.qg.net:15561 www.baidu.com
## 四、编写采集程序
测试代理可用后,便可开始编写代理采集程序了。
青果提供了以下的编程语言的代码示例以及SDK下载包供开发者进行隧道代理参考,
>>[SDK下载](https://www.qg.net/doc/sdk/9_230/1745.html)
>>[隧道代理 Go 语言接入指南](https://www.qg.net/doc/sdk/9_230/1872.html)
>>[隧道代理 Python 语言接入指南](https://www.qg.net/doc/sdk/9_230/1879.html)
## 其他应用
另外,虽然隧道代理不需要API接口就能使用代理,但也提供了白名单验证的接口,以下简单介绍隧道相关的白名单接口使用以及一些指定功能。
### 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]")
### 指定使用某个国家的IP
因为隧道代理每次请求都会随机更换IP,如果你希望随机范围限定在某个国家,可以通过添加国家编码参数来指定使用某个国家的IP。具体编码请查看 [区域编码表](https://www.qg.net/doc/1975.html)
```curl
curl -x {authkey}:{authpwd}:A{国家编码}@{隧道服务器} {目标url}
// 例子,指定使用美国IP
curl -x HBRMO154:4799868CE54:A990100@overseas.tunnel.qg.net:15561 www.baidu.com
```
### 保持IP不变
如果用户需要多个请求在维持一个IP,比如:需要登录,获取数据两个请求在一个IP下,则可对IP进行打标记,通过标记请求在代理有效期内使用相同的代理IP,并且可以支持设定该通道的存活时间。
```curl
curl -x {authkey}:{authpwd}:C{自定义通道名}:T{存活时间}:A{国家编码}@{隧道服务器} {目标url}
// 例子,通道名自定义为100,存活时间设为60秒
curl -x HBRMO154:4799868CE54:Cchannel-1:T60:A990100@overseas-us.tunnel.qg.net:15561 www.baidu.com
```
**注意:如果需要保持IP不变一段时间,那么不可以使用通用的overseas.tunnel.qg.net域名,需要使用特定地区的服务器域名,比如:overseas-us.tunnel.qg.net/overseas-hk.tunnel.qg.net等!!!否则服务器无法保证是否可以保持IP不变。**
### 指定隧道服务器
为了降低使用隧道服务的延迟,青果网络为隧道代理(全球HTTP)提供了多个隧道服务器,用户可根据自身的使用情况就近选择隧道服务器。隧道服务器的地址可在控制台中查看。
```curl
curl -x {authkey}:{authpwd}:C{自定义通道名}:T{存活时间}:A{国家编码}@{隧道服务器} {目标url}
// 例子,更换隧道服务器为美国的隧道服务器
curl -x HBRMO154:4799868CE54:Cchannel-1:T60:A990100@overseas-us.tunnel.qg.net:15561 www.baidu.com
```
## 1 说明
通过编码使用动态独占代理主要有以下三步骤:
(1)先在[会员中心](https://www.qg.net/user/ "会员中心")上查看购买的动态独占代理,在“IP管理”中添加IP城市,获取的独占资源进行本地调试和验证;[查看测试步骤>>](https://www.qg.net/doc/1574.html "查看测试步骤")
(2)参考[代码样例](https://www.qg.net/list/192.html)请求动态独占代理;
(3)在程序中通过调用API接口获取独占代理,然后请求目标网站。
## 2 API接口
动态独占代理API接口一览
| 接口类型 | API | 描述 |
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 资源相关 | - [monopolize_resources](https://www.qg.net/doc/1559.html )
- [monopolize_resources](https://www.qg.net/doc/1560.html)
- [monopolize_resources](https://www.qg.net/doc/1562.html)
- [monopolize_resources/newest_ips](https://www.qg.net/doc/1561.html )
| - 用POST调用接口申请独占资源
-用GET调用接口查询可用的独占资源
- 用DELETE调用接口释放独占资源
- 用PUT调用接口请求重拨独占资源 |
| 白名单相关 | - [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 "whitelist/del") | - 调用接口用于查询IP的白名单
- 调用接口用于添加IP的白名单
- 调用接口用于删除IP的白名单 |
| 资源信息查询 | - [monopolize_resources/idle](https://www.qg.net/doc/1563.html) | - 用GET调用接口查询空闲的独占资源 |
**重点:**动态独占代理相对动态独享代理,除了可以独享宽带和IP,还可以指定城市,重拨的IP保持地区不变。