129 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @file networktool.php
 | |
|  * @date 2018-04-11
 | |
|  * @author Go Namhyeon <gnh1201@gmail.com>
 | |
|  * @brief Network tool helper
 | |
|  */
 | |
| 
 | |
| if(!check_function_exists("get_network_event")) {
 | |
|     function get_network_event() {
 | |
|         $config = get_config();
 | |
| 
 | |
|         return array(
 | |
|             "datetime"   => get_current_datetime(),
 | |
|             "server"     => get_network_server_addr(),
 | |
|             "hostname"   => get_network_hostname(),
 | |
|             "client"     => get_network_client_addr(),
 | |
|             "agent"      => getenv("HTTP_USER_AGENT"),
 | |
|             "referrer"   => getenv("HTTP_REFERER"),
 | |
|             "query"      => getenv("QUERY_STRING"),
 | |
|             "self"       => get_value_in_array("PHP_SELF", $_SERVER, ""),
 | |
|             "method"     => get_value_in_array("REQUEST_METHOD", $_SERVER, ""),
 | |
|         );
 | |
|     }
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("get_network_client_addr")) {
 | |
|     function get_network_client_addr() {
 | |
|         $addr = '';
 | |
|         if (isset($_SERVER['HTTP_CLIENT_IP']))
 | |
|             $addr = $_SERVER['HTTP_CLIENT_IP'];
 | |
|         else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
 | |
|             $addr = $_SERVER['HTTP_X_FORWARDED_FOR'];
 | |
|         else if(isset($_SERVER['HTTP_X_FORWARDED']))
 | |
|             $addr = $_SERVER['HTTP_X_FORWARDED'];
 | |
|         else if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
 | |
|             $addr = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
 | |
|         else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
 | |
|             $addr = $_SERVER['HTTP_FORWARDED_FOR'];
 | |
|         else if(isset($_SERVER['HTTP_FORWARDED']))
 | |
|             $addr = $_SERVER['HTTP_FORWARDED'];
 | |
|         else if(isset($_SERVER['REMOTE_ADDR']))
 | |
|             $addr = $_SERVER['REMOTE_ADDR'];
 | |
|         else
 | |
|             $addr = 'UNKNOWN';
 | |
|         return $addr;
 | |
|     }
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("get_network_server_addr")) {
 | |
|     function get_network_server_addr() {
 | |
|         $addr = '';
 | |
|         if(isset($_SERVER['SERVER_ADDR']) && isset($_SERVER['SERVER_PORT'])) {
 | |
|             $addr = $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT'];
 | |
|         } else if(isset($_SERVER['SERVER_ADDR'])) {
 | |
|             $addr = $_SERVER['SERVER_ADDR'];
 | |
|         } else if(isset($_SERVER['LOCAL_ADDR'])) {
 | |
|             $addr = $_SERVER['LOCAL_ADDR'];
 | |
|         } else if(check_function_exists(array("gethostname", "gethostbyname"))) {
 | |
|             $host = gethostname();
 | |
|             $addr = gethostbyname($host);
 | |
|         } else {
 | |
|             $addr = 'UNKNOWN';
 | |
|         }
 | |
|         return $addr;
 | |
|     }
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("get_network_hostname")) {
 | |
|     function get_network_hostname() {
 | |
|         $host = '';
 | |
|         if(isset($_SERVER['HTTP_HOST'])) {
 | |
|             $host = $_SERVER['HTTP_HOST'];
 | |
|         } else if(isset($_SERVER['SERVER_NAME'])) {
 | |
|             $host = $_SERVER['SERVER_NAME'];
 | |
|         } else if(!check_function_exists('gethostname')) {
 | |
|             $host = gethostname();
 | |
|         } else {
 | |
|             $host = 'UNKNOWN';
 | |
|         }
 | |
| 
 | |
|         return $host;
 | |
|     }
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("check_secure_protocol")) {
 | |
| 	function check_secure_protocol() {
 | |
| 		return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("get_os_platform")) {
 | |
| 	function get_os_platform() {
 | |
| 		$os = "";
 | |
| 
 | |
| 		if(defined("PHP_OS")) {
 | |
| 			$os = PHP_OS;
 | |
| 		} else {
 | |
| 			$os = php_uname(s);
 | |
| 		}
 | |
| 
 | |
| 		return $os;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| if(!check_function_exists("get_network_outbound_addr")) {
 | |
| 	function get_network_outbound_addr($protocol="") {
 | |
| 		$addr = false;
 | |
| 		$config = get_config();
 | |
| 
 | |
| 		// via icanhazip.com
 | |
| 		if(loadHelper("webpagetool")) {
 | |
| 			$remote_host = "http://" . ($protocol == "ipv6" ? "ipv6." : "") . "icanhazip.com";
 | |
| 			$response = get_web_page($remote_host, "get.cache");
 | |
| 			$addr = get_value_in_array("content", $response, $addr);
 | |
| 		}
 | |
| 
 | |
| 		// via opendns.com
 | |
| 		if(!$addr && loadHelper("exectool")) {
 | |
| 			$cmd = "dig +short myip.opendns.com @resolver1.opendns.com";
 | |
| 			$addr = exec_command($cmd, "shell_exec", array(
 | |
| 				"cache" => true
 | |
| 			));
 | |
| 		}
 | |
| 
 | |
| 		return $addr;
 | |
| 	}
 | |
| }
 |