Avatar billede Slettet bruger
21. juli 2005 - 19:13 Der er 20 kommentarer og
1 løsning

Hvordan banner man ip?

Hey, jeg leder efter et IP ban system, hvordan gør man deT?
Håber i kan hjælpe

/I'm out
Avatar billede javascript Nybegynder
21. juli 2005 - 19:15 #1
Du kan jo lave sådan du indsætter en ip i tabellen "banned" også kan du tjekke om selve $_SERVER["REMOTE_ADDR"] som er ip'en er i databasen med mysql_num_rows..
Avatar billede Slettet bruger
21. juli 2005 - 19:17 #2
i hvilken tabel?

altså jeg skal lave så de ip'er der er banned ikke kan se hjemmesiden
Avatar billede nielle Nybegynder
21. juli 2005 - 19:22 #3
En mulighed er at have de bannede IP'er i et array:

<?php
$IP = $GLOBALS['REMOTE_ADDR'];
$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];

if (($FIP != "") && ($FIP != "unknown")) $IP = $FIP;

$BannedIPs = array();
$BannedIPs[] = "123.123.123.123";
$BannedIPs[] = "123.123.123.124";
$BannedIPs[] = "123.123.123.125";
$BannedIPs[] = "123.123.123.126";
$BannedIPs[] = "123.123.123.127";

foreach ($BannedIPs as $BannedIP)
{
    if ($IP == $BannedIP)
    {
        header("Location: http://www.disney.dk/");
        exit();
    }
}
?>
Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 19:23 #4
Du laver en mysql tabel.

I den gemmer du en ip som du ikke må se dine sider.

I tjek.php laver du et system som tjekker om brugerens ip er en af dem i tabelen.
Hvis ja skal sætte en streng til 1. Eks $se = "1";

I toppen af dine sider lægger du en include til tjek.php. Hvor efter du gør $se til en global variabel.
Så laver du en if ($se=="1") {
echo "du er banned";
}else{
Din normale side
}


Forstår du ?
Avatar billede rasmus-madsen Nybegynder
21. juli 2005 - 19:24 #5
tja eller som nielle skrev
Avatar billede nielle Nybegynder
21. juli 2005 - 19:24 #6
<?php
$IP = $GLOBALS['REMOTE_ADDR'];
$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];

if (($FIP != "") && ($FIP != "unknown")) $IP = $FIP;

if ($IP == "123.123.123.123")
{
    header("Location: http://www.disney.dk/");
    exit();
}
?>
Avatar billede nielle Nybegynder
21. juli 2005 - 19:24 #7
Glem den sidste post! :^|
Avatar billede nielle Nybegynder
21. juli 2005 - 19:26 #8
Eller med IP'erne i en tabel i en database:

<?php
$IP = $GLOBALS['REMOTE_ADDR'];
$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];

if (($FIP != "") && ($FIP != "unknown")) $IP = $FIP;

$SQL = "SELECT count(*) AS antal FRIM bannedIP WHERE ip='" . $IP . "'";
result = mysql_query($SQL);
$row = mysql_fetch_array($result);

if ($row["antal"] > 0)
{
    header("Location: http://www.disney.dk/");
    exit();
}
?>
Avatar billede nielle Nybegynder
21. juli 2005 - 19:30 #9
Bemærk:

$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];

- er med for at tage højde for de tilfælde hvor sv**et, som skal bannes, er placeret bag en router med NAT.
Avatar billede ksoren Nybegynder
21. juli 2005 - 19:38 #10
Bare husk, at HTTP_X_FORWARDED_FOR nemt kan fuskes med
Avatar billede olebole Juniormester
21. juli 2005 - 19:46 #11
<ole>

- bare husk, at brugerens IP intet siger om, hvem han er ... IP-banning er utroligt nemt at komme udenom  :)

/mvh
</bole>
Avatar billede Slettet bruger
21. juli 2005 - 19:47 #12
Tja, hvis man sidder bag en proxy har man jo også "fusket" med $_SERVER['REMOTE_ADDR']
Avatar billede Slettet bruger
21. juli 2005 - 23:08 #13
Tak for svarene, tester lige Nielle's
Avatar billede Slettet bruger
21. juli 2005 - 23:11 #14
hehe tak for hjælpen det virker, kommer du med svar ?
Avatar billede ksoren Nybegynder
21. juli 2005 - 23:55 #15
Jeg tror bare min pointe var, at kigges der kun på den header, kan man udgive sig for at være hvem som helst.

I ovenstående (med database) er der måske ligefrem mulighed for sql injection
Avatar billede Slettet bruger
22. juli 2005 - 00:35 #16
JEg bruger ikke databasen, jeg bruger den første der blev skrevet...
Avatar billede nielle Nybegynder
22. juli 2005 - 06:45 #17
Svar :^)
Avatar billede dknsj Nybegynder
23. juli 2005 - 21:41 #18
$ban = array("ip", "ip", "ip", "ip");
if(in_array($ban, $REMOTE_ADDR)){
print("Du er banned, skrid.");
} else {
print ("Du er IKKE banned");
}
Avatar billede Slettet bruger
23. juli 2005 - 21:52 #19
Det script er da ekstremt ringe... Du antager at man har global vars: on, hvilket er en ekstremt stor sikkerhedsrisiko. Ydermere skriver du ikke, hvordan du vil vælge at tilføje/slette bannede ip'er.

En sidste kommentar fra min side vil være, at du måske skal overveje dit sprogbrug herinde. Selvom det er et eksempel, skal du ikke regne med at folk finder det underholdene, at du vil skrive til dine besøgende, at de kan skride - selvom den aktuelle besøgende er banned.
Avatar billede Slettet bruger
23. juli 2005 - 22:22 #20
Lige en kommentar til wicez:
Jeg kan godt regne ud at det er i $ban = array("ip", "ip".... hvor man skal erstatte 'ip' med ip'en der skal bannes... ;-)
Avatar billede Slettet bruger
24. juli 2005 - 00:11 #21
Det var jeg på intet tidspunkt i tvivl om ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester