128 lines
2.6 KiB
PHP
128 lines
2.6 KiB
PHP
<?php
|
|
|
|
set_magic_quotes_runtime(false);
|
|
|
|
include('config.inc');
|
|
include('../scripts/config.inc');
|
|
include('as_manager.inc');
|
|
include('as_log.inc');
|
|
|
|
function redirect() {
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title>LegacyWorlds Beta 5 > Administration > Proxy detector</title>
|
|
</head>
|
|
<body>
|
|
<h1><a href="index.html">LWB5 > Administration</a> > Proxy detector</h1>
|
|
<h2>Operation in progress...</h2>
|
|
<p>
|
|
A system operation is in progress. Please wait, the page will update in 5 seconds.
|
|
</p>
|
|
<script language="JavaScript">
|
|
window.setTimeout('window.location="proxy.php"', 5000);
|
|
</script>
|
|
</body>
|
|
</html>
|
|
<?php
|
|
exit(0);
|
|
}
|
|
|
|
|
|
function startDetector() {
|
|
__logAdmin("is starting the proxy detector");
|
|
__sendControl("PCON");
|
|
redirect();
|
|
}
|
|
|
|
function stopDetector() {
|
|
__logAdmin("is stopping the proxy detector");
|
|
__sendControl("PCOFF");
|
|
redirect();
|
|
}
|
|
|
|
|
|
$oldDir = getcwd();
|
|
chdir("../scripts");
|
|
$__loader = array(
|
|
'log', 'classloader',
|
|
'version', 'game', 'tick',
|
|
'config', 'pcheck'
|
|
);
|
|
require_once("loader.inc");
|
|
chdir($oldDir);
|
|
|
|
|
|
$isRunning = pcheck::isRunning();
|
|
|
|
if ($_GET['c'] == 'sd') {
|
|
startDetector();
|
|
} elseif ($_GET['c'] == 'kd') {
|
|
stopDetector();
|
|
} elseif ($_GET['ip'] != '') {
|
|
$ip = $_GET['ip'];
|
|
$status = "";
|
|
if (preg_match('/^\d{1,3}(\.\d{1,3}){3}$/', $ip)) {
|
|
if ($ip == "127.0.0.1") {
|
|
$status = "Host not allowed";
|
|
} else {
|
|
$addr = explode('.', $ip);
|
|
foreach ($addr as $piece) {
|
|
if ($piece > 254) {
|
|
$status = "Invalid IP address";
|
|
break;
|
|
}
|
|
}
|
|
if ($status == "") {
|
|
try {
|
|
$result = pcheck::check(array($ip));
|
|
$status = "$ip - ";
|
|
switch ($result[$ip]) {
|
|
case -1: $status .= "detection failed"; break;
|
|
case 0: $status .= "no proxy detected"; break;
|
|
case 1: $status .= "OPEN PROXY DETECTED!"; break;
|
|
}
|
|
} catch (Exception $e) {
|
|
$status = $e->getMessage();
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$status = "Invalid IP address";
|
|
}
|
|
} else {
|
|
$status = $ip = "";
|
|
}
|
|
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title>LegacyWorlds Beta 5 > Administration > Proxy detector</title>
|
|
</head>
|
|
<body>
|
|
<h1><a href="index.html">LWB5 > Administration</a> > Proxy detector</h1>
|
|
<?php
|
|
|
|
if ($isRunning) {
|
|
?>
|
|
<p>
|
|
Proxy detector is <b>running</b>; process ID #<?=$isRunning?>. <a href="?c=kd">Stop detector</a>
|
|
</p>
|
|
<form action="?" method="GET">
|
|
<p>
|
|
Manually check address <input type="text" size="16" maxlength="15" name="ip" value="<?=htmlentities($ip, ENT_QUOTES)?>" />
|
|
<input type="submit" value="Scan" />
|
|
<?=($status != '') ? ('<br/><b>' . $status . '</b>') : ''?>
|
|
</p>
|
|
</form>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<p>
|
|
Proxy detector is <b>not running</b>. <a href="?c=sd">Start detector</a>
|
|
</p>
|
|
<?php
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|