Är noll kunnig vad gäller kodning. Har sökt men inte hittat en ip-spärr. Vill blockera EN ip-adress och om det går, automatiskt skicka vederbörande till annan adress ...
Hm. Jag använder följande kod för att banna folk från min sida:
<?
// Try to get the correct remote IP-address.
function getRemoteAddress()
{
// If HTTP_X_FORWARDED_FOR is set we grab the first address in the list
if( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
{
if( preg_match( "/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $_SERVER['HTTP_X_FORWARDED_FOR'], $addresses ) )
return $addresses[0];
}
// If no address was found in HTTP_X_FORWARDED_FOR, we try HTTP_CLIENT_IP and if that isn't set we return REMOTE_ADDR
return (isset( $_SERVER['HTTP_CLIENT_IP'] )) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR'];
}
// Här lägger du till IP-adresser du vill banna
$banlist = array('xxx.xxx.xx.xxx', 'xxx.xxx.xx.xxx');
if( in_array( getRemoteAddress(), $banlist ) )
exit( '<h1>Portad</h1>
<p>Du är inte välkommen, gå här ifrån.</p>' );
?>
Det kanske går skriva om den där så man skickas till en annan sida i stället för att få meddelandet. :)
Nu skäms jag..men bäst att fråga och verka dum än att förbli okunnig. Sidan är en frame-sida. Lägger jag in den i indexfilen och i body eller i head? :r :r :r
Och jag antar att de ska se ut som nedan
<?
// Try to get the correct remote IP-address.
function getRemoteAddress()
{
// If HTTP_X_FORWARDED_FOR is set we grab the first address in the list
if( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
{
if( preg_match( "/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/", $_SERVER['HTTP_X_FORWARDED_FOR'], $addresses ) )
return $addresses[0];
}
// If no address was found in HTTP_X_FORWARDED_FOR, we try HTTP_CLIENT_IP and if that isn't set we return REMOTE_ADDR
return (isset( $_SERVER['HTTP_CLIENT_IP'] )) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR'];
}
// Här lägger du till IP-adresser du vill banna
$banlist = array('213.64.254.7', 'xxx.xxx.xxx.xx');
if( in_array( getRemoteAddress(), $banlist ) )
header ( 'Location: ht tp://www. mibbe.com/err or.php' );
?>
Nu skäms jag..men bäst att fråga och verka dum än att förbli okunnig. Sidan är en frame-sida. Lägger jag in den i indexfilen och i body eller i head? :r :r :r
Lägg den allra överst på din sida, i head.php-filen.
mibbe - med tanke på att din error-sida inte upplyser om att det är banning som gäller... så ska du kanske inte posta avsedda ip-adresser här? :q Ägarna kanske får syn på dem och känner igen sina ip-nummer? :q Fast du kanske använde dummy-värden...
mibbe - med tanke på att din error-sida inte upplyser om att det är banning som gäller... så ska du kanske inte posta avsedda ip-adresser här? :q Ägarna kanske får syn på dem och känner igen sina ip-nummer? :q Fast du kanske använde dummy-värden...
De som "äger" de ip-adresserna är garanterat INTE på webforum, det lovar jag :)
Sen som ni förstår så vill jag att vederbörande inte ens ska förstå att han är bannad (Därav den lilla gulliga error-sidan) :h
... Är lite osäker på om det spelar någon roll, men det är väl bättre att vara på den säkra sidan så hinner personen inte ladda något av sidan. Det spelar roll. "Redirecten" (via header(...) ) funkar inte om något tecken redan skickats till webbläsaren. Så lägg det som:
<?php
<koden du vill ha in>
?>
<html>
<head>
.....
Nu kan vederbörande inte komma in, men följande meddelande kommer upp ... (Har B-one, kanske spelar in?) Så huvuddelen av syfter är uppnått nu ...) =)
Warning: Cannot modify header information - headers already sent by (output started at /customers/mibbe.com/mibbe.com/httpd.www/index.php:2) in /customers/mibbe.com/mibbe.com/httpd.www/index.php on line 41
... Är lite osäker på om det spelar någon roll, men det är väl bättre att vara på den säkra sidan så hinner personen inte ladda något av sidan. Det spelar roll. "Redirecten" (via header(...) ) funkar inte om något tecken redan skickats till webbläsaren. Så lägg det som:
<?php
<koden du vill ha in>
?>
<html>
<head>
.....
.... Warning: Cannot modify header information - headers already sent by (output started at /customers/mibbe.com/mibbe.com/httpd.www/index.php:2) in /customers/mibbe.com/mibbe.com/httpd.www/index.php on line 41
Det beror på att din kod INTE ligger överst i filen. Någonting "<html>", eller ett mellanslag eller vad som helst har skrivits ut till webbsidan före raden
header("Location: ....");
Att döma av felmeddelandet finns det någon form av output på rad 2 i index.php, medan header-raden befinner sig på rad 41.
Detta får till följd att de som har dessa ip-adresser INTE skickas iväg till någon ny sida, ty redirecten fungerar inte!!
Du kan testa hur det ser ut för dem genom att skapa en kontrollsida där du (temporärt) lägger in ditt eget ip bland de bannade tecknen.
För att redirecten ska fungera måste du se till att din kod ligger före varje tecken som skickas till webbläsaren.