Avatar billede dallerweb.dk Nybegynder
22. juni 2004 - 01:15 Der er 11 kommentarer og
1 løsning

IP snapper uden register globals

dette virker ikke uden register globals

$ip = $GLOBALS['REMOTE_ADDR'];
$fip = $GLOBALS['HTTP_X_FORWARDED_FOR'];
if (($fip != "") && ($fip != "unknown")) $ip = $fip;
$ip = explode(",", $ip);
$ip = $ip[0];
echo"$ip";

Hvorfor ikke?
Avatar billede Slettet bruger
22. juni 2004 - 01:26 #1
kan være det bare er mig der er en skovl men vil du ikke explode på . i stedet for ,
Avatar billede Slettet bruger
22. juni 2004 - 02:35 #2
det her virker da for mig og så vidt jeg lige kan se mig ud af så skulle det da være det samme

<?php
$ip = getenv("REMOTE_ADDR");
$fip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (($fip != "") && ($fip != "unknown")) $ip = $fip;
$ip = explode(".", $ip);
$ip = $ip[0];
echo "$ip";
?>
Avatar billede Slettet bruger
22. juni 2004 - 08:49 #3
$ip = $_SERVER['REMOTE_ADDR'];
$fip = $_SERVER['HTTP_X_FORWARDED_FOR'];
Avatar billede Slettet bruger
22. juni 2004 - 08:49 #4
Og du burde også tjekke på $_SERVER['HTTP_CLIENT_IP']
Avatar billede Syska Mester
22. juni 2004 - 09:05 #5
$ip = explode(",", $ip);
til
$ip = explode(".", $ip);

som spillermand skriver, så skulle den være i vinkel.
Avatar billede Slettet bruger
22. juni 2004 - 09:07 #6
buzzzz> Hvorfor lægger du et svar? Når en anden bruger allerede har skrevet hvad løsningen (måske) er skal du da ikke bare gentage og så lægge et svar.

Medmindre du bare er ude efter point.
Avatar billede dallerweb.dk Nybegynder
22. juni 2004 - 15:07 #7
så sådan her: ?

<?php
$ip = getenv("REMOTE_ADDR");
$fip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$cip = $_SERVER['HTTP_CLIENT_IP'];
if (($fip != "") && ($fip != "unknown")) $ip = $fip;
if (($cip != "") && ($cip != "unknown")) $ip = $cip;
$ip = explode(".", $ip);
$ip = $ip[0];
echo "$ip";
?>

hvis den endelig finder nogle af disse:

$fip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$cip = $_SERVER['HTTP_CLIENT_IP'];

så overskriver de jo hinanden...

Hvilke er vigtigst ?

Lige nu er prioriteten:

1. $_SERVER['HTTP_CLIENT_IP']
2. $_SERVER['HTTP_X_FORWARDED_FOR'];
3. $_SERVER['REMOTE_ADDR'];

Hvad gør de forskellige helt præcist ?

og burde jeg køre en søgning på alle 3 i min database, hvis jeg ønsker at banne en ip ?
Avatar billede dallerweb.dk Nybegynder
22. juni 2004 - 15:08 #8
hvis jeg exploder . på min IP, så får jeg jo kun første led med ?
Avatar billede dallerweb.dk Nybegynder
22. juni 2004 - 15:16 #9
evt. hvordan både ip, fip og cip kan skrives ind i denne:

$tjek_bannedip = mysql_query("SELECT ip FROM banned WHERE ip='$ip'");
Avatar billede dallerweb.dk Nybegynder
28. juni 2004 - 19:52 #10
Svar?
Avatar billede Slettet bruger
29. juni 2004 - 18:23 #11
tja du exploder jo og så vælger du

$ip = $ip[0];

som dermed vil give f.eks 127

hvis du ønsker hele ip'en så skal du ikke explode
Avatar billede Slettet bruger
29. juni 2004 - 18:31 #12
$q1 = "SELECT * FROM `f_banlist` WHERE 1";
$rs1 = mysql_query($q1) or die("MySQL Query Fejl");
$rw1 = mysql_fetch_array($rs1);

$ips_a = explode(",",$rw1['address']);
$cip = getenv("REMOTE_ADDR");

if (array_search($cip,$ips_a)) {
echo "Du har ikke adgang til denne side";
exit();

noget jeg skrev for meget lang tid siden du kan jo arbejde videre på det
eksempel i databasen

127.0.0.1,192.168.0.1,81.5.4.7,82.6.4.7
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