<?php
	exec("./php_my_root strongswan rereadsecrets"); // 테스트 끝나면 이 라인은 삭제할 것

exec("./php_my_root strongswan statusall", $result_commend);  // VPN서버 상태 조회 및 변수저장
//echo count($result_commend);
$result_tmp = implode("Œ",$result_commend); // 조회될 결과내용의 맨 마지막줄에 Œ 를 붙임으로써 파싱후 처리를 용이하게 함

$전체카테고리_arr = array("\r\n","\r","\n","\t","  ");
$result_tmp = str_replace($전체카테고리_arr," ",$result_tmp);

echo $result_tmp;  // 테스트를 위해 화면 출력

$result_msg = preg_match_all("|Security Associations(.*?):Œ|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$TOTAL_CONNECT[] = $result_text[1][$i]; // 총접속건수 , (3 up, 0 connecting)
		echo "<br>###A$i#".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|\]\.\.\.(.*?) IKEv2 SPIs\:|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$result_msg2 = preg_match_all("|Remote EAP identity\:(.*?)Œ|", $result_text[1][$i], $result_text2);
		if (strlen(trim($result_text2[1][0])) > 0) {
			$result_text[1][$i] = trim($result_text2[1][0]);
		} else {
			$result_msg3 = preg_match_all("|\[(.*?)\]|", $result_text[1][$i], $result_text3);
			if (count($result_text3) > 0) {
				$result_text[1][$i] = trim($result_text3[1][0]);
			}
		}
		$CONNECT_ID[] = $result_text[1][$i]; // 접속자아이디 , user1
		echo "###B$i#".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|\]\.\.\.(.*?)\[|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_WIP[] = $result_text[1][$i]; // 접속자공인IP , 113.226.195.35
		echo "###C$i#".$result_text[1][$i]."###<br>";
	}
}





$result_msg = preg_match_all("|= 10\.11\.12\.(.*?)\/32|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_VPN_DHCP_IP[] = "10.11.12.".$result_text[1][$i]; // 할당된 VPN서버 내부용 DHCP 할당IP , 10.11.12.5
		echo "###E$i#"."10.11.12.".$result_text[1][$i]."###<br>";
	}
}




$result_tmp2 = str_replace("AES_CBC_256","AES_CBC_128",$result_tmp);
$result_msg = preg_match_all("|}: AES_CBC_128/HMAC_SHA1_96(.*?)Œ|", $result_tmp2, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = str_replace(", rekeying disabled","",$result_text[1][$i]);
		$result_text[1][$i] = str_replace("/MODP_2048","",$result_text[1][$i]);
		$result_text[1][$i] = str_replace("bytes_i","Rx",$result_text[1][$i]);
		$result_text[1][$i] = str_replace("bytes_o","Tx",$result_text[1][$i]);
		$result_text[1][$i] = substr($result_text[1][$i],1);
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_BYTES_RxTx[] = $result_text[1][$i]; // RX Tx bytes , 318546
		echo "###F$i#".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|uptime:(.*?)Œ|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_VPN_DHCP_IP[] = "uptime: ".$result_text[1][$i]; // 총가동시간, uptime: 6 hours, since Jun 20 00:48:21 2020
		echo "###G$i#"."uptime: ".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|malloc:(.*?)Œ|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_VPN_DHCP_IP[] = "malloc: ".$result_text[1][$i]; // 메모리 사용량, malloc: sbrk 1761280, mmap 0, used 707184, free 1054096
		echo "###H$i#"."malloc: ".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|local: \[(.*?)\]|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_VPN_DHCP_IP[] = "local: ".$result_text[1][$i]; // 서버접속 도메인, vpn.cddc.kr
		echo "###I$i#"."local: ".$result_text[1][$i]."###<br>";
	}
}



$result_msg = preg_match_all("|cert: \"(.*?)\"Œ|", $result_tmp, $result_text);
if ($result_msg > 0) {
	for ($i=0; $i<count($result_text[1]); $i++) {
		$result_text[1][$i] = trim($result_text[1][$i]);
		$CONNECT_VPN_DHCP_IP[] = "cert: ".$result_text[1][$i]; // 등록된 인증서과 연결된 도메인, CN=vpn.cddc.kr
		echo "###J$i#"."cert: ".$result_text[1][$i]."###<br>";
	}
}







?>
