應用場景
最近我們剛成立了一個項目,在微信推廣中,域名時不時的就被微信攔截,這使我們都非常頭大,這時我翻閱互聯網上所有的資料,知道有微信域名檢測這樣一個API接口,問了身邊做技術的朋友,朋友也說需要一這微信域名檢測這樣的API接口,實時檢測域名在微信裏是否可以打開,如果被微信攔截,則需要進行下一步操作,所以需要判斷域名的狀態,但是微信官方並沒有提供相關查詢的方法,最後在網上找到了這個接口地址,分享給有需要的朋友。
檢測樣式:http://api.monkeyapi.com?appkey={appkey}&url=www.baidu.com
舉例說明:如果需要檢測123.com,就把www.baidu.com 換成123.com,這裏面appkey是需要獲取的,此時就可以實時檢測域名啦,值得一提的是,這裏被檢測的對象可以是域名,也可以是鏈接,還可以是帶參數的鏈接,我讓我覺得特別了不起。
這裏分析下域名被封常見原因,域名被封,確實有很多因素,簡單列舉下:
1、購買的域名有黑歷史,曾經進過小黑屋,這類則是風險名單中的重點檢測對象!
2、qq和微信是2種完全不同的檢測機制,經常會出現一邊被封另一邊沒事!
3、網站流量過大,騰訊針對流量過大的網站也是重點檢測的對象!
4、誘導轉發活動,即使是合法營銷,也會被封!
5、 正文、標題、圖片任意有一處有一點點違規信息,被系統抓取到也是會被封禁!
6、人工舉報,這個也佔有一定的比例!
7、有的是封鏈接不封域名,因爲是騰訊合作的第三方平臺,京東、拼多多、有贊等等
8、 服務器 IP是一個很重點檢測!
9、對於明顯特徵或複用度高的違規圖片,系統是能識別的!
將api接口地址中的url鏈接換成需要檢測的網址即可
最後分享下PHP代碼實現示例:
$url = "http://api.monkeyapi.com";
$params = array(
'appkey' =>'appkey',//您申請的APPKEY
'url' =>'www.monkeyapi.com',//需要查詢的網站
);
$paramstring = http_build_query($params);
$content = Curl($url, $paramstring);
$result = json_decode($content, true);
if($result) {
var_dump($result);
}else {
//請求異常
}
/**
* 請求接口返回內容
* @param string $url [請求的URL地址]
* @param string $params [請求的參數]
* @param int $ipost [是否採用POST形式]
* @return string
*/
function Curl($url, $params = false, $ispost = 0)
{
$httpInfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
}else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch);
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}