Avatar billede Slettet bruger
21. oktober 2004 - 13:11 Der er 6 kommentarer og
1 løsning

IP blokning

Hej Drenge!

Jeg har et konkret problem, jeg ønsker at blokere adgangen til mit site for en person, og jeg bruger

$host = @getHostByAddr($REMOTE_ADDR);

til at obtaine hans ip, smider den i en MySQL og blokere adgang til mit site for ham.

Nu er problemet bare at kuglen har fundet ud af at gå igennem PROXY-servere og bliver ved med at komme retur på mit site.

Har jeg mulighed for, via php, at hente mere detaljerede oplysnigner på hans maskine, f.eks. en mac-adresse eller noget der unik identificere denne person og hans PC...
Altså hvor det ikke hjælper at skjule sig bag PROXY's..

Mvh.

Kim
Avatar billede coderdk Praktikant
21. oktober 2004 - 13:28 #1
Nogle proxy-servere sætter HTTP_X_FORWARDED_FOR - denne indeholder hans IP, hvis den vel at mærke er sat...
Du kan ikke få hans MAC-adresse.
En anden mulighed er at bruge cookies i.e. sæt en cookie med hans IP, derefter ban IP'en - Når han vender tilbage med en proxy kan du se om IP'en i hans cookie er banned eller ej... Virker selvfølgelig kun indtil han sletter cookien...
Ellers er der ikke så meget at gøre - Gør han ulovlige ting, så saml beviser, og videregiv disse til myndighederne...
Avatar billede Slettet bruger
21. oktober 2004 - 13:37 #2
Tak for dit råd, jeg vil se om jeg kan lave det sådan at jeg tvinger brugere til at de skal "acceptere cookies" og så lave det her trick...
Personen gør som ikke så meget andet end at genere og smide om sig med dumheder på et åbent debatforum..

Men mange tak for tippet!

Den metode jeg bruge i PHP vil den kunne afslører det her "HTTP_X_" ting?

Mvh.

Kim
Avatar billede coderdk Praktikant
21. oktober 2004 - 13:50 #3
Yeps:

$bruger_ip = ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'] );
Avatar billede Slettet bruger
21. oktober 2004 - 17:11 #4
Ohha, hvad er det lige du skriver der.. er det første del af stregen do laver noget tokenizer med?

Mvh.

Kim
Avatar billede coderdk Praktikant
21. oktober 2004 - 17:14 #5
$bruger_ip = ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'] );

svarer helt til at skrive:

if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) )
{
  $bruger_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $bruger_ip = $_SERVER['REMOTE_ADDR'];
}

Man bør nok egentlig undgå den for læselighedens skyld, men jeg synes nu den er dejlig ;)
Avatar billede coderdk Praktikant
21. oktober 2004 - 17:15 #6
Mao: variabel = ( true-or-false-statment ? return-if-true : return-if-false );
Avatar billede Slettet bruger
21. oktober 2004 - 17:42 #7
Thx!
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