hallo leuz,
ich habe ein problem und ich hoffe ihr könnt mir helfen ...
REMOTE_ADDR gibt die IP des durchschleifenden Apache Servers zurück und nicht die IP des Clients (oder dessen Proxy).
mein script :
die funktion ip_sperre funktioniert leider nicht so wie ich es will, aus dem grund, dass REMOTE_ADDR nicht die ip des clients meiner seite ausgibt. deshalb wird das nix mit der ip-sperre. wie kann man das denn anders machen ?
Vielen dank für eure Hilfe !!!!
ich habe ein problem und ich hoffe ihr könnt mir helfen ...
REMOTE_ADDR gibt die IP des durchschleifenden Apache Servers zurück und nicht die IP des Clients (oder dessen Proxy).
mein script :
PHP-Code:
<?php
error_reporting(E_ALL);
session_start();
require("connect.inc.php");
if ($_GET['hello'] == "script")
{
echo 'Hello Master!';
die;
}
include "config.inc.php";
srand(microtime()*10000000);
$rand = rand(1, 11);
function schreiben($datei,$mode) {
global $REMOTE_ADDR;
$fp = @fopen($datei,$mode);
flock($fp,2);
fwrite($fp,$REMOTE_ADDR."|".time()."\n");
flock($fp,3);
fclose($fp);
}
function ip_sperre() {
global $REMOTE_ADDR;
$reloadlogdatei = "ips.txt";
$anzahleintraege = 10000;
$zeitlimit = 86400;
if(!file_exists($reloadlogdatei)) {
$datei = fopen($reloadlogdatei,"w+");
fclose($datei);
}
$fp = file($reloadlogdatei);
$size = sizeof($fp);
if($size >= $anzahleintraege){
schreiben($reloadlogdatei,"w");
}
else {
$ausgabe=false;
for ($i=0;$i<$size;$i++) {
$zeile = explode("|",$fp[$i]);
if ($zeile[0] == $REMOTE_ADDR AND $zeile[1] > (time()-$zeitlimit)){
// ip wird gefunden
$ausgabe = true;
}
}
schreiben($reloadlogdatei,"a+");
}
return $ausgabe;
}
$abfrage=mysql_query("select * from dieb_user_".$digit."
WHERE `id` = '".$_GET['id']."'");
while ($row2 = mysql_fetch_array($abfrage))
{
$names = $row2["user"];
$bekid = $row2["bekid"];
$punkte = $row2["geld"];
}
(int) $zahl = $anzahl[$rand];
$text = '<B>"'.$names.'"</b> hat von Ihnen einen Punkt bekommen, DANKE';
$geld1 = '1';
$geld2 = '1';
$geld3 = '1';
$geld4 = '1';
$geld5 = '1';
$geld6 = '1';
$geld7 = '1';
$geld8 = '1';
$geld9 = '1';
$geld10 = '1';
$geld11 = '1';
$anzahl = array(1=>"$geld1",
2=>"$geld2",
3=>"$geld3",
4=>"$geld4",
5=>"$geld5",
6=>"$geld6",
7=>"$geld7",
8=>"$geld8",
9=>"$geld9",
10=>"$geld10",
11=>"$geld11",
12=>"$geld12");
if (ip_sperre()==false) {
$inhalt .= $text;
$neuepunkte = $punkte+$anzahl[$rand];
$neubekid = $bekid+1;
mysql_query("update dieb_user_".$digit." Set geld = '".$neuepunkte."',
bekid = '".$neubekid."' WHERE id = '".$_GET['id']."'");
$inhalt .= '<BR><BR>Der User "'.$names.'" hat jetzt '.$neuepunkte.' '.$waehrung.'!';
}
else
{
$inhalt .= 'Sie können pro Tag nur ein mal beklaut werden, <B>"'.$names.'"</b>
hat von Ihnen keinen Punkt bekommen ';
}
$inhalt .= '<BR><BR>Wollen sie auch ein Dieb werden ?
Dann melden sie sich an, oder informieren sie sich.<BR>
<a href="http://collectmoney.eu/">Weiter zur Anmeldung!</a><BR>
<a href="http://collectmoney.eu/">Was ist "Diebspiel" ?</a>';
$template = implode("",file("template/style.html"));
$template = str_replace("<?inhalt?>", $inhalt, $template);
echo ($template);
?>
Vielen dank für eure Hilfe !!!!
Kommentar