使用接口前,请务必联系我们开通测试账号,支持php, java, asp 3种语言调用。 如有需要,可联系QQ: 1806098280,电话: 13607514236(微信同步)
1.请求方式:POST
2.接口地址:正式开通账号后向客服索取
请求参数
参数
|
数据类型
|
必需
|
示例
|
描述
|
username
|
字符串
|
是
|
123456789
|
用户名(正常用户名为手机号或QQ号)
|
password
|
字符串
|
是
|
123456789
|
用户密码(16位大小写字母和数字的组合)
|
ip
|
字符串
|
是
|
192.168.1.1
|
提交判断的IP地址(支持ipv4和ipv6)
|
site
|
字符串
|
是
|
$_SERVER['HTTP_HOST']
|
调用接口的网站
|
device
|
字符串
|
否
|
''
|
当前访问设备(手机:phone, 平板:tablet, 电脑:computer, '': 表示不传递设备值),默认为空
|
ads_countries
|
字符串
|
是
|
'US+GB+CA'
|
打广告的国家, 一定要填写2位国家代码,多个国家之间用+号连接,国家代码务必参见 国家代码
|
ban_devices
|
字符串
|
否
|
'computer+tablet'
|
屏蔽设备,参数值:phone(手机),tablet(平板),computer(电脑),默认为空表示不屏蔽任何设备。
|
ban_agent
|
bool值
|
否
|
true
|
true:屏蔽代理; false: 允许代理IP访问, 默认屏蔽
|
ban_company
|
bool值
|
否
|
true
|
true: 屏蔽公司IP; false: 允许公司IP访问, 默认屏蔽
|
is_crawler
|
bool值
|
否
|
false
|
true: 爬虫IP; false: 正常IP, 默认false
|
接口返回的json数据
参数
|
数据类型
|
示例
|
描述
|
status
|
数字
|
0
|
0:表示此IP需要被屏蔽;1:表示此IP合法。客户根据0和1的值来做相应处理,比如0显示内容A,1显示内容B。
|
reason
|
字符串
|
108.ads_platform_prohibited
|
108表示错误代码;ads_platform_prohibited表示错误代码的英文解释,此值表示广告平台IP被屏蔽
|
3. php示例代码
/*以下为调用IP屏蔽系统API接口的核心代码*/
//*********************************************************************************************/
// 如果已经调用过接口并且设置了cookie的访客, 则不再调用接口,直接通过cookie值来判断,这样可以加快效率
if(isset($_COOKIE['waf_token'])){
$status = ($_COOKIE['waf_token']=='13607514236')? true: false;
}else{ // 如果没有设置cookie
$jsonData = array();// 初始化接口发送数据
$jsonData['http_referer'] = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
$jsonData['username'] = "123456789"; // 调用防护接口的账号(通常账号为手机号或QQ号), 123456789 为测试用户的账号
$jsonData['password'] = '123456789'; // 调用防护接口的密码,123456789 为测试用户的密码
$jsonData['ip'] = getClientIp(); // 获取访客的IP地址
$jsonData['site'] = $_SERVER['HTTP_HOST']; // 调用接口网站
$jsonData['device'] = detectAgent(); // 获取访问设备, 默认为空,表示不传,不传的话则不屏蔽设备
$jsonData['ads_countries'] = ''; // 打广告的国家代码,多个国家代码之间用+号连接,这里表示将打加拿大,澳大利亚和新西兰的广告。为空表示将屏蔽所有国家。
// 2位国家代码一定要参见我们的链接,不要从别的地方抄. http://www.handingyun.cn/ipcloak/country_code.html
$jsonData['ban_devices'] = ''; // 屏蔽设备,默认值为空表示不屏蔽任何设备,参数值:phone(手机),tablet(平板),computer(电脑)
$jsonData['ban_agent'] = true; // true:屏蔽代理; false: 允许代理IP访问, 默认屏蔽
$jsonData['ban_company'] = true; // true: 屏蔽公司; false: 允许公司IP访问, 默认屏蔽
$ch = curl_init('http://www.handingyun.cn/ipcloak/api/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($jsonData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 关闭SSL验证, 如果测试接口返回数据为null, 请去掉此行和下面一行代码前面的注释
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$return = curl_exec($ch);
$result = json_decode($return, true); // json数据解码成数组
// var_dump($result); exit;
$status = $result['status']; // 返回true表示IP通过审核,返回false表示IP被屏蔽
// 设置cookie
setcookie('waf_token', ($status ? '13607514236' : '123456789'), time() + 60 * 60 * 24 * 180, '/', '', false);
}
// 如果IP通过审核,则显示某个子页面内容,也可以反过来写,如果IP被屏蔽则显示子页面内容。
if($status){
$thisDomain = $_SERVER['SERVER_NAME'];
$getURLType = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
$trueDomain = $getURLType. $thisDomain . "/fp/";
echo file_get_content_sstr($trueDomain);
exit;
}
function file_get_content_sstr($url) {
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); //不取得返回头信息
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 3);
// https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$file_contents = curl_exec($ch);
curl_close($ch);
return $file_contents;
}