2018-04-10 16:25:31 +00:00
|
|
|
<?php
|
2018-04-10 16:27:55 +00:00
|
|
|
/**
|
2018-04-10 17:42:42 +00:00
|
|
|
* @file networktool.php
|
2018-04-10 16:27:55 +00:00
|
|
|
* @date 2018-04-11
|
|
|
|
* @author Go Namhyeon <gnh1201@gmail.com>
|
2018-04-10 17:42:42 +00:00
|
|
|
* @brief Network tool helper
|
2018-04-10 16:27:55 +00:00
|
|
|
*/
|
|
|
|
|
2018-04-10 16:25:31 +00:00
|
|
|
if(!function_exists("get_network_event")) {
|
|
|
|
function get_network_event() {
|
2018-04-10 17:43:57 +00:00
|
|
|
$config = get_config();
|
|
|
|
|
2018-04-10 16:25:31 +00:00
|
|
|
return array(
|
2018-05-24 06:02:25 +00:00
|
|
|
"datetime" => get_current_datetime(),
|
|
|
|
"server" => get_network_server_addr(),
|
2018-04-10 16:31:36 +00:00
|
|
|
"hostname" => get_network_hostname(),
|
|
|
|
"client" => get_network_client_addr(),
|
2018-04-10 16:27:55 +00:00
|
|
|
"agent" => getenv("HTTP_USER_AGENT"),
|
|
|
|
"referrer" => getenv("HTTP_REFERER"),
|
|
|
|
"query" => getenv("QUERY_STRING"),
|
2018-09-02 16:04:08 +00:00
|
|
|
"self" => get_value_in_array("PHP_SELF", $_SERVER, ""),
|
|
|
|
"method" => get_value_in_array("REQUEST_METHOD", $_SERVER, ""),
|
2018-04-10 16:25:31 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!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(!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(function_exists('gethostname') && function_exists('gethostbyname')) {
|
|
|
|
$host = gethostname();
|
|
|
|
$addr = gethostbyname($host);
|
|
|
|
} else {
|
|
|
|
$addr = 'UNKNOWN';
|
|
|
|
}
|
|
|
|
return $addr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!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(function_exists('gethostname')) {
|
|
|
|
$host = gethostname();
|
|
|
|
} else {
|
|
|
|
$host = 'UNKNOWN';
|
|
|
|
}
|
|
|
|
|
|
|
|
return $host;
|
|
|
|
}
|
|
|
|
}
|
2018-05-31 03:51:18 +00:00
|
|
|
|
2018-09-12 01:55:56 +00:00
|
|
|
if(!function_exists("check_secure_protocol")) {
|
|
|
|
function check_secure_protocol() {
|
|
|
|
return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-12 01:54:45 +00:00
|
|
|
if(!function_exists("get_os_platform")) {
|
|
|
|
function get_os_platform() {
|
|
|
|
$os = "";
|
|
|
|
|
|
|
|
if(defined("PHP_OS")) {
|
|
|
|
$os = PHP_OS;
|
|
|
|
} else {
|
|
|
|
$os = php_uname(s);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $os;
|
|
|
|
}
|
|
|
|
}
|
2018-09-26 10:57:38 +00:00
|
|
|
|
|
|
|
if(!function_exists("get_network_outbound_addr")) {
|
|
|
|
function get_network_outbound_addr($protocol="") {
|
|
|
|
$addr = false;
|
2018-09-26 11:18:18 +00:00
|
|
|
$config = get_config();
|
2018-09-26 10:57:38 +00:00
|
|
|
|
2018-09-26 11:06:07 +00:00
|
|
|
// via icanhazip.com
|
2018-09-26 10:57:38 +00:00
|
|
|
if(loadHelper("webpagetool")) {
|
|
|
|
$remote_host = "http://" . ($protocol == "ipv6" ? "ipv6." : "") . "icanhazip.com";
|
2018-09-26 11:00:22 +00:00
|
|
|
$response = get_web_page($remote_host, "get.cache");
|
2018-09-26 10:57:38 +00:00
|
|
|
$addr = get_value_in_array("content", $response, $addr);
|
|
|
|
}
|
|
|
|
|
2018-09-26 11:06:07 +00:00
|
|
|
// via opendns.com
|
|
|
|
if(!$addr && loadHelper("exectool")) {
|
|
|
|
$cmd = "dig +short myip.opendns.com @resolver1.opendns.com";
|
2018-09-26 11:18:18 +00:00
|
|
|
$fw = write_stroage_file(exec_command($cmd, "shell_exec"), array(
|
|
|
|
"storage_type" => "cache",
|
2018-09-26 11:31:27 +00:00
|
|
|
"filename" => get_hashed_text($cmd, array(
|
|
|
|
"salt" => true,
|
2018-09-26 11:32:08 +00:00
|
|
|
"2p" => true
|
2018-09-26 11:31:27 +00:00
|
|
|
))
|
2018-09-26 11:18:18 +00:00
|
|
|
));
|
|
|
|
$addr = read_storage_file($fw, array(
|
|
|
|
"storage_type" => "cache"
|
|
|
|
));
|
2018-09-26 11:06:07 +00:00
|
|
|
}
|
|
|
|
|
2018-09-26 10:57:38 +00:00
|
|
|
return $addr;
|
|
|
|
}
|
|
|
|
}
|