묻고답하기

<style type="text/css">
@import url("white.css");
</style>

<?php
class trafficInfo {
 function xml_info($xml, $domain) {
  $fileArr = explode("\n", $xml);
  $fileCnt = count($fileArr);
  for($i=0; $i<$fileCnt; $i++) {
   if(strpos($fileArr[$i], '<domain-'.$domain.'>') !== false) {
    $get = true;
   }
   if($get) {
    $z[] = preg_replace(";\t*;", "", $fileArr[$i]);$fileArr[$i];
   }
   if(strpos($fileArr[$i], '</domain-'.$domain.'>') !== false) {
    break;
   }
  }
  if($z && is_array($z)) {
   //print_r($z);
   $file = implode("", $z);
   $xmlParser = xml_parser_create();
   xml_parse_into_struct($xmlParser, $file, $vals, $index);
   xml_parser_free($xmlParser);

   $params = array();
   $level = array();
   foreach ($vals as $xmlElem) {
    if ($xmlElem['type'] == 'open') {
     if (array_key_exists('attributes',$xmlElem)) {
      list($level[$xmlElem['level']],$extra) = array_values($xmlElem['attributes']);
     } else {
      $level[$xmlElem['level'+ '+ ']] = $xmlElem['tag'];
     }
    }
    if ($xmlElem['type'] == 'complete') {
     $start_level = 1;
     $php_stmt = '$params';
     while($start_level < $xmlElem['level']) {
      $php_stmt .= '[$level['.$start_level.']]';
      $start_level++;
     }
     $php_stmt .= '[$xmlElem[\'tag\']] = $xmlElem[\'value\'];';
     eval($php_stmt);
    }
   }
  } else {
   exit(" <font color=\"red\">에러 : XML 정보 불러오기 실패</font>\n<br />\n");
  }
  $this->usageTraffic = $this->kb_to_mb(str_replace('KiB', '', $params['DOMAIN-'.strtoupper($domain)]['USAGES']['TOTAL']));
  $this->totalTraffic = $this->kb_to_mb(str_replace('KB', '', $params['DOMAIN-'.strtoupper($domain)]['LIMITS']['TOTAL']));
  $this->percent = round($this->usageTraffic / $this->totalTraffic * 1000) / 1000 * 100;
  return $params;
 }
 function hosting_traffic($html, $domain) {
  $file = explode("\n", $html);
  $flags = 0;
  for($i=0, $fileNum=count($file); $i<$fileNum; $i++) {
   if(strpos($file[$i], $domain) !== false) {
    if($flags < 2) {
     $flags++;
    } else {
     break;
    }
   }
  }
  for($ii=$i+1, $userInfo=$i+11; $ii<$userInfo; $ii++) {
   $file_ .=  $file[$ii]."\n";
  }
  preg_match_all(';<td class="(red|critical|green|yellow)">([^<]+)</td>;', $file_, $match);
  $this->usageTraffic = $match[2][3];
  $this->totalTraffic = $match[2][7];
  $this->percent = round($this->usageTraffic / $this->totalTraffic * 1000) / 1000 * 100;
  return $match;
 }
 function kb_to_mb($kb) {
  return $kb/1000;
 }
 function get_traffic($domain, $accountId, $accountPass, $trafficPath) {
  $fp = fsockopen($domain, 80, $errstr, $errno, 30);
  if($trafficPath != 'traffic' && $trafficPath != 'traffic?xml') {
   exit('정확히 적어주시길 바랍니다.');
  }
  if(!$fp) {
   exit('정확히 적어주시길 바랍니다. ('.$errstr.")");
  } else {
   $data = "GET /".$trafficPath." HTTP/1.0\r\n";
   $data .= "Host: ".$domain."\r\n";
   $data .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
   $data .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html,text/plain,image/png,image/jpeg,image/gif,*/*\r\n";
   $data .= "Accept-encoding: gzip\r\n";
   $data .= "Accept-language: ko-kr\r\n";
   $data .= "Authorization: BASIC ".base64_encode($accountId.':'.$accountPass)."\r\n\r\n";
   fwrite($fp, $data);
   $inHeaders = true;
   $atStart = true;
   while (!feof($fp)) {
    $line = fgets($fp, 4096);
    if ($atStart) {
     $atStart = false;
     if (!preg_match('/HTTP\/(\\d\\.\\d)\\s*(\\d+)\\s*(.*)/', $line, $m)) {
      echo "정보를 정상적으로 받아오지 못했습니다.1(".htmlentities($line).')';
      exit();
     }
     if($m[2] != 200) {
      echo "정보를 정상적으로 받아오지 못했습니다.2(".htmlentities($line).')';
      exit();
     }
     continue;
    }
    if ($inHeaders) {
     if (trim($line) == '') {
      $inHeaders = false;
      continue;
     }
     if (!preg_match('/([^:]+):\\s*(.*)/', $line, $m)) {
      continue;
     }
     continue;
    }
    $trafficPage .= $line;
   }
   fclose($fp);
  }
  if($trafficPath == 'traffic') {
   return $this->hosting_traffic($trafficPage, $domain);
  } else if($trafficPath == 'traffic?xml') {
   return $this->xml_info($trafficPage, $domain);
  }
 }
}

$domain = 'lamborghini.mireene.com'; // 도메인(ex : mireene.com)
$accountId = 'lamborghini'; // 계정아이디
$accountPass = '+ '********'; // 계정암호
$trafficPath = 'traffic'; // 일반서버의 경우 traffic, cent서버는 traffic?xml

$traffic = new trafficInfo();
$trafficInfo = $traffic->get_traffic($domain, $accountId, $accountPass, $trafficPath);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> 트래픽 정보보기 </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Mireene" />
<meta name="keywords" content="traffic" />
<meta name="description" content="traffic" />
</head>

<body>

 
  <div class="HG_trafficViewer">
    <h2 class="title"><span>트래픽 사용량</span></h2>
        <div class="description">Traffic = <?php echo $traffic->percent; ?>% (<?php echo $traffic->usageTraffic; ?>MB / <?php echo $traffic->totalTraffic; ?>MB)</div>
        <div class="graph">
            <div class="used" style="width:<?php echo $traffic->percent; ?>%;"></div>
            <div class="rest" style="width:<?php echo 100 - $traffic->percent; ?>%;"></div>
            <div class="clear"></div>
        </div>

</div>

</body>
</html>

 

 

 

http://www.xpressengine.com/17123904

 **********************************여기 글에 있는거 보고했어요~

http://lamborghini.mireene.com/xe/traffic/traffic.php

이렇게 뜨는 이유좀 알려주세요;;

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
xfilechun 외부페이지이용하여 원격오라클접속이 가능한가요? [2] 2009.09.03 by xfilechun
별과함께 페이지가 안나와요  
kimsec 사이트 주소 변경하고 싶은데.. [1] 2009.09.03 by phiz
mc뷰 통합검색 후에 링크를 클릭하면 이동을 현재페이지에서 할 수는 없나요?  
배수한 게시판 크기조절을 하고싶어요 [3] file 2009.09.03 by 감로수
엠™ Virtual Host 이 모듈프로그램 업그레이드 가능하신분.. [1]  
판다몬 문하우스 Simple 레이아웃을 수정해서 사용하고 싶습니다 !!  
dil 제로보드에서 게시판  
난네오 첨부 파일 100%에서 사라지는 문제(해결완료) [2] 2009.09.03 by 난네오
mib 회원가입페이지요, [1] 2009.09.03 by 초보
apollos 이곳 메뉴 박스 배경에 색깔을 집어 넣으려면 어떻게 ? file  
벼리507 이런 기능 구현할수 없을까요? [1] 2009.09.03 by mc뷰
블리히 게시판 양 옆이 너무 딱딱 달라붙어서 보기싫네요 [2] 2009.09.03 by 시니시즘
청춘개똥 기존 회원가입 폼에서 몇개를 지웠습니다. 괜찮을까요? [2] 2009.09.03 by mc뷰
김수군 회사 홈페이지를 제작하는데 XE보드를 쓸려고 합니다. [3] 2009.09.03 by mc뷰
yb361 xe 설치 첫 화면에서 영어만 나와요 [3] 2009.09.03 by mc뷰
多星 파비콘 관련 [2] 2009.09.03 by 多星
엠™ 서브도메인 로그인 연동하기 질문이요..  
꿍꿍이 제발 답변 부탁드려요. 엮인글 [6] 2009.09.03 by 꿍꿍이
apollos 서브메뉴를 가로로 놓는 방법은 어떻게 하나요 ? file  
마에야히 moduleModel::getModuleInfoXml() 이거 어떻게 쓰나요;;  
공방 (홈)페이지가 갑자기 안나옵니다. [3] 2009.09.03 by 백성찬
zartin 이모티콘이 왜 안나오지요? [1] 2009.09.03 by apollos
불패의초인 트래픽 보는 거요,,,ㅠ [1] 2009.09.03 by 불패의초인
류태일 전에 보이던 자료 페이지가 안보이는데 혹시 사라졌나요.. [2] 2009.09.03 by 류태일
어쭈구리メ 확장변수에는 생일처럼 나오게 할수 없나요? [3] file 2009.09.03 by 백성찬
apollos 다시한번 메뉴에 대해서 질문드립니다. [1] file 2009.09.03 by apollos
apollos 이런 오류는 어떻게 잡나요 ? file  
김태운555 첨부화일 에러 [1] file 2009.09.03 by 백성찬
잘살아 awstats 웹로그분석 결과 추출가능한지요?