shell腳本聯(lián)合PHP腳本采集網(wǎng)站的pv和alexa排名
這是給朋友寫的腳本,是做cdn方面的,經(jīng)常遇見攻擊,但是不能一遇見攻擊就把域名給封殺,我們可以有選擇的進(jìn)行判斷。
這個(gè)是php取值alexa值得:
<?php
$yuming = $argv[1];
//獲取 alaxe 排名
function getAlexaRank($domain = www.dbjr.com.cn)
{
$line = "";
$data = "";
$url = "http://data.alexa.com/data/?cli=10&dat=snba&ver=7.0&url=".$domain;
$fp = fopen($url,"r");
if($fp)
{
while(!feof($fp))
{
$line = fgets($fp);
$data.= $line;
}
$p = xml_parser_create();
xml_parse_into_struct($p,$data,$vals);
xml_parser_free($p);
for($i = 0 ;$i<count($vals);$i++)
{
if($vals[$i]["tag"]=="POPULARITY")
{
return $vals[$i]["attributes"]["TEXT"];
}
}
}
}
echo getAlexaRank($yuming);
?>
這個(gè)是用來(lái)取pv數(shù)值的
<?php
//
// 參數(shù)傳遞指定地址
//
if(empty($argv[1])){
die('參數(shù)錯(cuò)誤');
}else{
$domain = $argv[1];
}
//
// curl請(qǐng)求
//
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://alexa.cn/api0523.php"); //?
curl_setopt($ch, CURLOPT_POST, 1);
$data['url'] = $domain;
$data['sig'] = 'd665053d27996bc7c72eff5f70d4facc';
$data['keyt'] = '1350970374';
curl_setopt($ch, CURLOPT_COOKIE, 'checkdom='.$domain);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
curl_close($ch);
$array_div = explode('*', $resp);
$c = count($array_div);
//
// 解析輸出
//
for($i=0; $i<$c; $i++){
if ($i == 10 || $i == 12 || $i ==14){
$m = $i + 1;
if($array_div[$i]!="-"){
$as = intval( str_replace(',', '', $array_div[$i]) );
$ax = intval( str_replace(',', '', $array_div[$m]) );
echo $as*3000*$ax;
echo "\n";
}else{
echo "-";echo "\n";
}
}
}
進(jìn)行shell判斷:
#!/bin/bash
digstatus=`dig $1 ns|grep IN.*NS.*.$|grep -E "ns1.appleidc.com|ns2.appleidc.com"|wc -l`
[ $digstatus -eq 0 ] && exit
paiming=`php alexa $1`
if [ $paiming -lt 1000 ]
then
echo high
else
echo no high
fi
pv=`php pv $1`
echo "$1 pv num is $pv"
判斷出來(lái)后,再做什么的,大家可以自己寫。 朋友那里是執(zhí)行一個(gè)post表單,在數(shù)據(jù)庫(kù)里把域名加個(gè)狀態(tài)值。
- PHP+shell實(shí)現(xiàn)多線程的方法
- php-fpm開機(jī)自動(dòng)啟動(dòng)Shell腳本
- Shell、Perl、Python、PHP訪問(wèn) MySQL 數(shù)據(jù)庫(kù)代碼實(shí)例
- Shell腳本中實(shí)現(xiàn)更新PHP5
- Shell腳本實(shí)現(xiàn)啟動(dòng)PHP內(nèi)置FastCGI Server
- PHP和Shell實(shí)現(xiàn)檢查SAMBA與NFS Server是否存在
- Ruby、PHP、Shell實(shí)現(xiàn)求50以內(nèi)的素?cái)?shù)
- php管理nginx虛擬主機(jī)shell腳本實(shí)例
- 監(jiān)控服務(wù)器swap并重啟php的Shell腳本
- PHP+shell腳本操作Memcached和Apache Status的實(shí)例分享
相關(guān)文章
Shell獲取當(dāng)前正在執(zhí)行腳本的絕對(duì)路徑
本文主要介紹了Shell獲取當(dāng)前正在執(zhí)行腳本的絕對(duì)路徑,主要有三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09linux?命令中的大于號(hào)、小于號(hào)的作用及代表的意思
在linux中,大家也許會(huì)經(jīng)??吹?<???、<<?、<<<?、>、>>?這幾個(gè)小于號(hào)、大于號(hào),那么他們分別代表什么意思呢?下面小編通過(guò)本文給大家介紹下linux?命令中的大于號(hào)、小于號(hào)的作用,感興趣的朋友一起看看吧2023-01-01詳解linux下利用crontab創(chuàng)建定時(shí)任務(wù)
這篇文章主要介紹了linux下利用crontab創(chuàng)建定時(shí)任務(wù)的相關(guān)資料,需要的朋友可以參考下2017-04-04shell腳本實(shí)現(xiàn)字符串的動(dòng)態(tài)替換方法
這篇文章主要介紹了shell腳本實(shí)現(xiàn)字符串的動(dòng)態(tài)替換,在shell腳本中全部替換的方式為${var//old/new},本文通過(guò)實(shí)現(xiàn)腳本給大家詳細(xì)講解,需要的朋友可以參考下2022-10-10Linux下文件剪切的shell腳本實(shí)現(xiàn)代碼
本篇文章主要介紹了Linux下文件剪切的sh腳本實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10shell編程中for循環(huán)語(yǔ)句的實(shí)現(xiàn)過(guò)程及案例
Bash?Shell中主要提供了三種循環(huán)方式:for、while和until,下面這篇文章主要給大家介紹了關(guān)于shell編程中for循環(huán)語(yǔ)句的實(shí)現(xiàn)過(guò)程及案例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04