mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-03 22:20:57 +08:00
94 lines
2.3 KiB
PHP
94 lines
2.3 KiB
PHP
<?php
|
|
if(!defined('IN_TRACKER'))
|
|
die('Hacking attempt!');
|
|
|
|
function get_global_sp_state()
|
|
{
|
|
global $Cache;
|
|
static $global_promotion_state;
|
|
if (!$global_promotion_state){
|
|
if (!$global_promotion_state = $Cache->get_value('global_promotion_state')){
|
|
$res = mysql_query("SELECT * FROM torrents_state");
|
|
$row = mysql_fetch_assoc($res);
|
|
$global_promotion_state = $row["global_sp_state"];
|
|
$Cache->cache_value('global_promotion_state', $global_promotion_state, 57226);
|
|
}
|
|
}
|
|
return $global_promotion_state;
|
|
}
|
|
|
|
// IP Validation
|
|
function validip($ip)
|
|
{
|
|
if (!ip2long($ip)) //IPv6
|
|
return true;
|
|
if (!empty($ip) && $ip == long2ip(ip2long($ip)))
|
|
{
|
|
// reserved IANA IPv4 addresses
|
|
// http://www.iana.org/assignments/ipv4-address-space
|
|
$reserved_ips = array (
|
|
array('192.0.2.0','192.0.2.255'),
|
|
array('192.168.0.0','192.168.255.255'),
|
|
array('255.255.255.0','255.255.255.255')
|
|
);
|
|
|
|
foreach ($reserved_ips as $r)
|
|
{
|
|
$min = ip2long($r[0]);
|
|
$max = ip2long($r[1]);
|
|
if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
|
|
}
|
|
return true;
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
function getip() {
|
|
if (isset($_SERVER)) {
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validip($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && validip($_SERVER['HTTP_CLIENT_IP'])) {
|
|
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
|
} else {
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
}
|
|
} else {
|
|
if (getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR'))) {
|
|
$ip = getenv('HTTP_X_FORWARDED_FOR');
|
|
} elseif (getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP'))) {
|
|
$ip = getenv('HTTP_CLIENT_IP');
|
|
} else {
|
|
$ip = getenv('REMOTE_ADDR');
|
|
}
|
|
}
|
|
|
|
return $ip;
|
|
}
|
|
|
|
function sql_query($query)
|
|
{
|
|
$begin = getmicrotime();
|
|
global $query_name;
|
|
$result = mysql_query($query);
|
|
$query_name[] = [
|
|
'query' => $query,
|
|
'time' => sprintf('%.3f', getmicrotime() - $begin),
|
|
];
|
|
return $result;
|
|
}
|
|
|
|
function sqlesc($value) {
|
|
$value = "'" . mysql_real_escape_string($value) . "'";
|
|
return $value;
|
|
}
|
|
|
|
function hash_pad($hash) {
|
|
return str_pad($hash, 20);
|
|
}
|
|
|
|
function hash_where($name, $hash) {
|
|
$shhash = preg_replace('/ *$/s', "", $hash);
|
|
return "($name = " . sqlesc($hash) . " OR $name = " . sqlesc($shhash) . ")";
|
|
}
|
|
?>
|