function testConstructUrlInfoForwarded()
 {
     $input1 = "for=192.0.2.60;proto=http;by=203.0.113.43";
     $input2 = "for=192.0.2.60;proto=https;by=203.0.113.43";
     $input3 = "for=192.0.2.60;by=203.0.113.43;proto=https";
     $gen = new UrlInfo($input1);
     $this->assertTrue($gen->is_valid());
     $this->assertEqual('203.0.113.43', $gen->host);
     $this->assertEqual('http', $gen->protocol);
     $gen = new UrlInfo($input2);
     $this->assertTrue($gen->is_valid());
     $this->assertEqual('203.0.113.43', $gen->host);
     $this->assertEqual('https', $gen->protocol);
     $gen = new UrlInfo($input3);
     $this->assertTrue($gen->is_valid());
     $this->assertEqual('https', $gen->protocol);
 }
Exemple #2
0
            exit;
        }
    }
    /**
     * Generates an HMAC signature per RFC 2104.
     *
     * @param String $url       URL to use in createing signature
     */
    protected function generateSignature($url)
    {
        $sign = "GET\n" . strtolower(self::$ServiceHost) . "\n/\n" . $url;
        $sig = base64_encode(hash_hmac('sha256', $sign, $this->secretAccessKey, true));
        return rawurlencode($sig);
    }
}
$accessKeyId = $argv[1];
$secretAccessKey = $argv[2];
$m = new Mongo();
$handle = fopen("top30000_FR.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    list($rank, $site, $reachpermillion, $pageviewspermillion, $pageviewsperuser) = $data;
    echo $rank . ' ' . $site . "\n";
    $urlInfo = new UrlInfo($accessKeyId, $secretAccessKey, $site);
    $info = (array) $urlInfo->getUrlInfo();
    $info['rank'] = (int) $rank;
    $info['reachpermillion'] = (int) $reachpermillion;
    $info['pageviewspermillion'] = (int) $pageviewspermillion;
    $info['pageviewsperuser'] = (double) $pageviewsperuser;
    $m->topsites->awis->insert($info);
    sleep(2);
}
Exemple #3
0
            $info = $xml->Response->UrlInfoResult->Alexa;
            $nice_array = array('Phone Number' => $info->ContactInfo->PhoneNumbers->PhoneNumber, 'Owner Name' => $info->ContactInfo->OwnerName, 'Email' => $info->ContactInfo->Email, 'Street' => $info->ContactInfo->PhysicalAddress->Streets->Street, 'City' => $info->ContactInfo->PhysicalAddress->City, 'State' => $info->ContactInfo->PhysicalAddress->State, 'Postal Code' => $info->ContactInfo->PhysicalAddress->PostalCode, 'Country' => $info->ContactInfo->PhysicalAddress->Country, 'Links In Count' => $info->ContentData->LinksInCount, 'Rank' => $info->TrafficData->Rank);
        }
        foreach ($nice_array as $k => $v) {
            echo $k . ': ' . $v . "\n";
        }
    }
    /**
     * Generates an HMAC signature per RFC 2104.
     *
     * @param String $url       URL to use in createing signature
     */
    protected function generateSignature($url)
    {
        $sign = "GET\n" . strtolower(self::$ServiceHost) . "\n/\n" . $url;
        echo "String to sign: \n" . $sign . "\n";
        $sig = base64_encode(hash_hmac('sha256', $sign, $this->secretAccessKey, true));
        echo "\nSignature: " . $sig . "\n";
        return rawurlencode($sig);
    }
}
if (count($argv) < 4) {
    echo "Usage: {$argv['0']} ACCESS_KEY_ID SECRET_ACCESS_KEY site\n";
    exit(-1);
} else {
    $accessKeyId = $argv[1];
    $secretAccessKey = $argv[2];
    $site = $argv[3];
}
$urlInfo = new UrlInfo($accessKeyId, $secretAccessKey, $site);
$urlInfo->getUrlInfo();
Exemple #4
0
 private function addUrlInfos($arrData)
 {
     if (empty($arrData)) {
         return;
     }
     $ecResult = $arrData['uiData']['ecResult'];
     $arrResult = $arrData['uiData']['asResult'];
     $topResult = $arrData['uiData']['topResult'];
     $leftResult = $arrData['uiData']['leftResult'];
     $rightResult = $arrData['uiData']['rightResult'];
     $arrQueryInfo = $arrData['uiData']['queryInfo'];
     $intI = 0;
     // ec队列
     foreach ($ecResult['ecResultItem'] as $result) {
         $urlInfo = new UrlInfo();
         if ($result['source'] == SRC_PPIM) {
             $ppImInfoLog = new PPimInfoLog();
             $intI++;
             $urlInfo->setIndex($intI);
             $urlInfo->setUrlType(UrlID::PPIM_ID);
             $ppImInfoLog->setAdNum($result['adNum'] + $intI - 1);
             $ppImInfoLog->setAspUid($arrData['uiData']['ecResult']['aspuid']);
             $urlInfo->setPpimLog($ppImInfoLog);
             $this->BaiduLog->addUrlInfo($urlInfo);
         } else {
             if ($result['source'] == SRC_NEWPP) {
                 $ppInfoLog = new PPInfoLog();
                 $intI++;
                 $urlInfo->setIndex($intI);
                 $urlInfo->setUrlType(UrlID::PP_ID);
                 $ppInfoLog->setAdNum($result['adNum']);
                 $urlInfo->setPpLog($ppInfoLog);
                 $this->BaiduLog->addUrlInfo($urlInfo);
             }
         }
     }
     //左侧队列
     foreach ($leftResult['item'] as $result) {
         $urlInfo = new UrlInfo();
         $intI++;
         $urlInfo->setIndex($intI);
         $urlInfo->setUrl(trim($result['itemUrl']));
         $urlInfo->setUrlType(UrlID::LEFT_ZX_ID);
         $leftZxUrlInfoLog = new LeftZXUrlInfoLog();
         $leftZxUrlInfoLog->setIsClAs($result['isClAs']);
         $leftZxUrlInfoLog->setStdStg(intval($result['dispData']['StdStg']));
         $leftZxUrlInfoLog->setStdStl(intval($result['dispData']['StdStl']));
         $leftZxUrlInfoLog->setUrlJiucuoFlag('0');
         for ($i = 0; $i < 4; $i++) {
             $leftZxUrlInfoLog->addStrategys('0');
         }
         $leftZxUrlInfoLog->setCategoryId($result['dispData']['category_id']);
         $leftZxUrlInfoLog->setCardId($result['dispData']['card_id']);
         $leftZxUrlInfoLog->setEntityName(urlencode($result['dispData']['entityname']));
         $leftZxUrlInfoLog->setUri(urlencode($result['dispData']['uri']));
         $leftZxUrlInfoLog->setTempName($result['dispData']['strategy']['tempName']);
         $leftZxUrlInfoLog->setTitle(urlencode($result['dispData']['resultData']['tplData']['title']));
         $itemUriInfo = $this->addItemUriInfo($result);
         if (!empty($itemUriInfo)) {
             $leftZxUrlInfoLog->setItemUriInfo($itemUriInfo);
         }
         if (isset($result['burstFlag']) && !empty($result['burstFlag'])) {
             $leftZxUrlInfoLog->setBurstFlag(intval($result['burstFlag']));
         }
         //透传日志
         $arrInfo = mc_pack_pack2array($result['gSampleLog']);
         if (false != $arrInfo) {
             foreach ($arrInfo as $key => $value) {
                 $dispData = new DispData();
                 $dispData->setKey($key);
                 $dispData->setVal($value);
                 $leftZxUrlInfoLog->addGSampleLog($dispData);
             }
         }
         $urlInfo->setLeftZxLog($leftZxUrlInfoLog);
         $this->BaiduLog->addUrlInfo($urlInfo);
     }
     //as 队列
     foreach ($arrResult['item'] as $result) {
         $urlInfo = new UrlInfo();
         $intI++;
         if ($result['source'] == SRC_AS) {
             $asUrlInfoLog = new AsUrlInfoLog();
             $urlInfo->setIndex($intI);
             $urlInfo->setUrl(trim($result['offsetInfo']['url']));
             $urlInfo->setUrlType(UrlID::AS_ID);
             $asUrlInfoLog->setWeight($result['urls']['asUrls']['weight']);
             $asUrlInfoLog->setUrlNo($result['urls']['asUrls']['urlno']);
             $asUrlInfoLog->setSuburlSign($result['urls']['asUrls']['suburlSign']);
             $asUrlInfoLog->setSiteSign1($result['urls']['asUrls']['siteSign1']);
             $asUrlInfoLog->setMixSignsitesign($result['urls']['asUrls']['mixSignSiteSign']);
             $asUrlInfoLog->setMixSignSex($result['urls']['asUrls']['mixSignSex']);
             $asUrlInfoLog->setMixSignPol($result['urls']['asUrls']['mixSignPol']);
             $asUrlInfoLog->setContSign($result['urls']['asUrls']['contSign']);
             $asUrlInfoLog->setMatchProp($result['urls']['asUrls']['matchProp']);
             foreach ($result['urls']['asUrls']['strategys'] as $strategy) {
                 $asUrlInfoLog->addStrategys($strategy);
             }
             $asUrlInfoLog->setInfo($result['info']);
             $oriIndex = ($result['info'] & 0xff0000) >> 16;
             if (0 < $oriIndex && $oriIndex <= $GLOBALS['URLLOG']['MAX_PB_PAGESIZE']) {
                 $asUrlInfoLog->setAuthWeight($result['authWeight']);
                 $asUrlInfoLog->setTimeFactor($result['timeFactor']);
                 $asUrlInfoLog->setPageType($result['pageType']);
                 $asUrlInfoLog->setField($result['field']);
             }
             $asUrlInfoLog->setStdStg(intval($result['dispData']['StdStg']));
             $asUrlInfoLog->setStdStl(intval($result['dispData']['StdStl']));
             $arrInfo = mc_pack_pack2array($result['gSampleLog']);
             $hasSampleLog = false;
             if (false != $arrInfo) {
                 foreach ($arrInfo as $key => $value) {
                     $dispData = new DispData();
                     $dispData->setKey($key);
                     $dispData->setVal($value);
                     $asUrlInfoLog->addGSampleLog($dispData);
                 }
                 $hasSampleLog = true;
             }
             if ($hasSampleLog) {
                 foreach ($result['dispData']['addSubArr'] as $arrPromot) {
                     $asUrlInfoLog->addItemSecureId($arrPromot['typeID']);
                 }
             }
             if (isset($result['dispData']['as_struct_exp']) && !empty($result['dispData']['as_struct_exp'])) {
                 $asUrlInfoLog->setFakeImageShow($result['dispData']['as_struct_exp']);
             }
             if (isset($result['dispData']['src_id']) && !empty($result['dispData']['src_id'])) {
                 $asUrlInfoLog->setSrcId($result['dispData']['src_id']);
             }
             if (isset($result['dispData']['img']) && !empty($result['dispData']['img'])) {
                 $asUrlInfoLog->setImg((bool) $result['dispData']['img']);
             }
             if (isset($result['dispData']['FavURL']) && !empty($result['dispData']['FavURL'])) {
                 $asUrlInfoLog->setFavUrl('1');
             }
             //打印title和showTime
             $asUrlInfoLog->setTitle(urlencode($result['offsetInfo']['title']));
             $asUrlInfoLog->setShowTime($result['timeShow']);
             $asUrlInfoLog->setNewTimeFactor(sprintf('%s', $result['dispData']['newTimeFactor']));
             if (isset($result['burstFlag']) && !empty($result['burstFlag'])) {
                 $asUrlInfoLog->setBurstFlag(intval($result['burstFlag']));
             }
             //大V包括安全联盟和百度身份认证两部分
             if (!empty($result['dispData']['safeUnion'])) {
                 $asUrlInfoLog->setSafeUnion('1');
             }
             if (!empty($result['dispData']['eVcard'])) {
                 $asUrlInfoLog->setEVcard('1');
             }
             //官网标记
             if (!empty($result['dispData']['sublink']['is_main'])) {
                 $asUrlInfoLog->setIsMain('1');
             }
             if (!empty($result['dispData']['womcEntranceFilter'])) {
                 $dispData = new DispData();
                 $dispData->setKey('pjzx_show');
                 $dispData->setVal('1');
                 $asUrlInfoLog->addGSampleLog($dispData);
             }
             if (empty($result['dispData']['ASURL'])) {
                 $asUrlInfoLog->setAsUrl('0');
             } else {
                 $asUrlInfoLog->setAsUrl('1');
             }
             $asUrlInfoLog->setClickWeight($result['clickWeight']);
             $asUrlInfoLog->setTemplateName($result['dispData']['templateName']);
             if (Util::getConf('/feature', 'FEATURE_LIST/ABSTRACT_PB_LOG/TURN') === 'ON') {
                 $asUrlInfoLog->setAbstractTxt($result['offsetInfo']['summary']);
             }
             $itemUriInfo = $this->addItemUriInfo($result);
             if (!empty($itemUriInfo)) {
                 $asUrlInfoLog->setItemUriInfo($itemUriInfo);
             }
             $urlInfo->setAsLog($asUrlInfoLog);
             $this->BaiduLog->addUrlInfo($urlInfo);
         } else {
             if ($result['source'] == SRC_SP) {
                 $urlInfo = new UrlInfo();
                 $urlInfo->setIndex($intI);
                 $urlInfo->setUrl(trim($result['resUrl']));
                 $urlInfo->setUrlType(UrlID::SP_ID);
                 $spUrlInfoLog = new SpUrlInfoLog();
                 $spUrlInfoLog->setIsClAs($result['isClAs']);
                 $spUrlInfoLog->setDispLog($result['dispLog']);
                 foreach ($result['strategyS'] as $arrStrategys) {
                     $spUrlInfoLog->addStrategys($arrStrategys);
                 }
                 //透传数据
                 $arrInfo = mc_pack_pack2array($result['gSampleLog']);
                 if (false != $arrInfo) {
                     foreach ($arrInfo as $key => $value) {
                         $dispData = new DispData();
                         $dispData->setKey($key);
                         $dispData->setVal($value);
                         $spUrlInfoLog->addGSampleLog($dispData);
                     }
                 }
                 if (isset($result['clickWeightMerge']) && !empty($result['clickWeightMerge'])) {
                     $dispData = new DispData();
                     $dispData->setKey("clickweightmerge");
                     $dispData->setVal((string) $result['clickWeightMerge']);
                     $spUrlInfoLog->addGSampleLog($dispData);
                 }
                 if (isset($result['dispData']['as_struct_exp']) && !empty($result['dispData']['as_struct_exp'])) {
                     $spUrlInfoLog->setFakeImageShow($result['dispData']['as_struct_exp']);
                 }
                 if (isset($result['burstFlag']) && !empty($result['burstFlag'])) {
                     $spUrlInfoLog->setBurstFlag(intval($result['burstFlag']));
                 }
                 if (isset($result['dispData']['resultData']['tplData']['title']) && !empty($result['dispData']['resultData']['tplData']['title'])) {
                     $spUrlInfoLog->setTitle(urlencode($result['dispData']['resultData']['tplData']['title']));
                 }
                 if (isset($result['dispData']['strategy']['tempName']) && !empty($result['dispData']['strategy']['tempName'])) {
                     $spUrlInfoLog->setTempName($result['dispData']['strategy']['tempName']);
                 }
                 foreach ($result['subUrlInfo'] as $arrUrlInfo) {
                     $subUrlInfo = new SubUrlInfo();
                     $subUrlInfo->setSubUrl($arrUrlInfo['subUrl']);
                     $subUrlInfo->setSubSiteId($arrUrlInfo['subSiteId']);
                     $spUrlInfoLog->addSubUrlInfo($subUrlInfo);
                 }
                 $itemUriInfo = $this->addItemUriInfo($result);
                 if (!empty($itemUriInfo)) {
                     $spUrlInfoLog->setItemUriInfo($itemUriInfo);
                 }
                 $urlInfo->setSpLog($spUrlInfoLog);
                 $this->BaiduLog->addUrlInfo($urlInfo);
             } else {
                 $urlInfo = new UrlInfo();
                 $urlInfo->setIndex($intI);
                 $urlInfo->setUrlType(UrlInfo::UNKNOW_ID);
             }
         }
     }
     $intI = 0;
     //上侧队列
     foreach ($topResult['item'] as $result) {
         $intI++;
         $topResultInfo = new ResultInfo();
         $topResultInfo->setIndex($intI);
         $topResultInfo->setUrl(trim($result['itemUrl']));
         $topResultInfo->setResultType(ResultID::TOPZHIXINRESULT);
         $topResult = new ZhiXinResult();
         $topResult->setStdStg(intval($result['dispData']['StdStg']));
         $topResult->setStdStl(intval($result['dispData']['StdStl']));
         $topResult->setCategoryId($result['dispData']['category_id']);
         $topResult->setCardId($result['dispData']['card_id']);
         $topResult->setEntityName(urlencode($result['dispData']['entityname']));
         $topResult->setUri(urlencode($result['dispData']['uri']));
         $topResult->setTempName($result['dispData']['strategy']['tempName']);
         $itemUriInfo = $this->addItemUriInfo($result);
         if (!empty($itemUriInfo)) {
             $topResult->setItemUriInfo($itemUriInfo);
         }
         //标题
         $topResult->setTitle($result['title']);
         //透传日志
         $arrInfo = mc_pack_pack2array($result['gSampleLog']);
         if (false != $arrInfo) {
             foreach ($arrInfo as $key => $value) {
                 $dispData = new DispData();
                 $dispData->setKey($key);
                 $dispData->setVal($value);
                 $topResult->addGSampleLog($dispData);
             }
         }
         $topResultInfo->setZxResult($topResult);
         $this->BaiduLog->addResultInfo($topResultInfo);
     }
     $intI = 0;
     //右侧队列
     foreach ($rightResult['item'] as $result) {
         $intI++;
         $rightResultInfo = new ResultInfo();
         $rightResultInfo->setIndex($intI);
         $rightResultInfo->setUrl(trim($result['itemUrl']));
         $rightResultInfo->setResultType(ResultID::RIGHTZHIXINRESULT);
         $rightResult = new ZhiXinResult();
         $rightResult->setStdStg(intval($result['dispData']['StdStg']));
         $rightResult->setStdStl(intval($result['dispData']['StdStl']));
         $rightResult->setCategoryId($result['dispData']['category_id']);
         $rightResult->setCardId($result['dispData']['card_id']);
         $rightResult->setEntityName(urlencode($result['dispData']['entityname']));
         $rightResult->setUri(urlencode($result['dispData']['uri']));
         $rightResult->setTempName($result['dispData']['strategy']['tempName']);
         $itemUriInfo = $this->addItemUriInfo($result);
         if (!empty($itemUriInfo)) {
             $rightResult->setItemUriInfo($itemUriInfo);
         }
         //标题
         $rightResult->setTitle($result['title']);
         //透传日志
         $arrInfo = mc_pack_pack2array($result['gSampleLog']);
         if (false != $arrInfo) {
             foreach ($arrInfo as $key => $value) {
                 $dispData = new DispData();
                 $dispData->setKey($key);
                 $dispData->setVal($value);
                 $rightResult->addGSampleLog($dispData);
             }
         }
         $rightResultInfo->setZxResult($rightResult);
         $this->BaiduLog->addResultInfo($rightResultInfo);
     }
     $intI = 0;
     // ec队列
     // 先计算之和并打印
     $intNum = 0;
     foreach ($ecResult['ecResultItem'] as $result) {
         $intNum += $result['adNum'];
     }
     // ec队列不为空时才处理
     if ($intNum) {
         $intI++;
         $aspResultInfo = new ResultInfo();
         $aspResultInfo->setIndex($intI);
         $aspResultInfo->setResultType(ResultID::ASPRESULT);
         $aspResult = new AspResult();
         $aspResult->setAspUid($arrData['uiData']['ecResult']['aspuid']);
         $aspResult->setAspSrcId(0);
         $aspResult->setNumber($intNum);
         $aspResultInfo->setAdResult($aspResult);
         $itemUriInfo = $this->addItemUriInfo($result);
         if (!empty($itemUriInfo)) {
             $aspResult->setItemUriInfo($itemUriInfo);
         }
         $this->BaiduLog->addResultInfo($aspResultInfo);
         foreach ($ecResult['ecResultItem'] as $result) {
             $intI++;
             $aspResultInfo = new ResultInfo();
             $aspResultInfo->setIndex($intI);
             $aspResultInfo->setResultType(ResultID::ASPRESULT);
             $aspResult = new AspResult();
             $aspResult->setAspUid($arrData['uiData']['ecResult']['aspuid']);
             $aspResult->setAspSrcId($result['id']);
             $aspResult->setNumber($result['adNum']);
             $itemUriInfo = $this->addItemUriInfo($result);
             if (!empty($itemUriInfo)) {
                 $aspResult->setItemUriInfo($itemUriInfo);
             }
             $aspResultInfo->setAdResult($aspResult);
             $this->BaiduLog->addResultInfo($aspResultInfo);
         }
     }
 }