Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: IP-osoitteen estäminen

Sivun loppuun

Juhko [12.11.2006 20:22:35]

#

Kuinka onnistuu tuo IP-osoitteen estäminen häiriköiltä sivulla?

hunajavohveli [12.11.2006 20:31:41]

#

PHP:llä voit kaivaa sivua pyytäneen IP:n muutujasta $_SERVER['REMOTE_ADDR'] ja verrata sitä häirikön IP:hen. Jos IP ei täsmää, sivu näytetään normaalisti, muuten ei näytetä.

Juhko [13.11.2006 14:06:47]

#

Kiitos, kokeillaan heti kun ehditään. Toivottavasti se PHP nyt toimii siellä personal.fi:ssä...

Cornix [13.11.2006 15:53:13]

#

Tästä on jo varmaan useampiaki aiheita. Käytä hakua. :)

Juhko [13.11.2006 15:57:38]

#

Kirjoitin hakuun "IP-osoitteen estäminen" ja se löysi vain tämän aiheen.

Blaze [13.11.2006 16:27:07]

#

Pitää osata olla vähän ovelampi hakusanojen suhteen: https://www.ohjelmointiputka.net/haku.php?sana­=ip banni :)

hunajavohveli [13.11.2006 16:57:31]

#

Juuh, "IP-osoitteen estäminen" etsii vain juuri tuossa sanamuodossa olevat aiheet.

Codeprofile [14.11.2006 18:38:11]

#

IP:n estäminen koko sivustoon onnistuu .htaccess:n avulla.
Pistät esimerkiksi seuraavat rivit .htaccess-tiedostoon:

Order allow,deny
allow from all
deny from 1.1.1.1
deny from 1.1.1.2
deny from 1.1.1.3

Tuo siis estää IP:t 1.1.1.1, 1.1.1.2 ja 1.1.1.3

Juhko [14.11.2006 20:28:05]

#

Elikkä teenkö siis tiedoston estetyt.htaccess ja kirjoitan nuo siihen?

Codeprofile [14.11.2006 20:29:53]

#

eikun pelkän .htaccess nimisen tiedoston. Tiedoston nimi on siis VAIN ".htaccess".

Juhko [16.11.2006 19:53:26]

#

Ottaako palvelin sen .htaccess -tiedoston sitten automaattisesti käyttöön?

Codeprofile [16.11.2006 20:07:55]

#

Ottaa.

Juhko [17.11.2006 17:29:04]

#

No hienoa. Nytpä täytyy vain odotella häiriköitä... :)

Juhko [17.11.2006 21:53:27]

#

No nyt tuli yksi, ja IP on estetty. :D

Quirzo [17.11.2006 22:07:38]

#

Itse käytän tällaista:

<?php
ob_start();

//avataan tiedosto lukutilassa
$tt2 = fopen("ip-bans.txt", "r");

$ip2 = $_SERVER['REMOTE_ADDR'];


//luetaan rivejä, kunnes tiedosto loppuu
while (!feof($tt2)) {
   //luetaan seuraava rivi muuttujaan
   $bannit2 = fgets($tt2, 300);
   }

if ($bannit2 == $ip2)
{
   exit("Sinulla on porttikielto.");
}

//suljetaan tiedosto
fclose($tt2);
ob_flush();
?>
<?php
ob_start();
$ip = $_SERVER['REMOTE_ADDR'];
$kone = gethostbyaddr($ip);
//avataan tiedosto lukutilassa

$tt = fopen("host-bans.txt", "r");



//luetaan rivejä, kunnes tiedosto loppuu
while (!feof($tt)) {
   //luetaan seuraava rivi muuttujaan
   $bannit = fgets($tt, 300);
   }
if ($bannit == $kone)
{
    exit("Sinulla on porttikielto");
}

//suljetaan tiedosto
fclose($tt);
ob_flush();
?>

Jostain oon muokkaamalla saanut tuon tehtyä.
Eli tiedosoton joka riville oma ip ja host -tiedostoon hosti, jos haluaa.

Juhko [20.11.2006 13:30:21]

#

Tuonhan voisin laittaakin sinne. Mutta tuo host, mitenksä se toimii?

Quirzo [20.11.2006 16:07:20]

#

ESIM:

IP=12.210.32.145
HOST=dr487dksie.dsl.phnet.fi

Ja tietääkseni hosti ei vaihdu, vaikka ip vaihtuukin jollain.
En ole varma.

Eli paras bannaus on varmaan ip ja host.

$kone = gethostbyaddr($ip);

Tolla koodilla ip:stä haetaan hosti

tsuriga [20.11.2006 17:22:01]

#

Tuo skriptisi ei anna porttikieltoa kuin viimeisimmälle ip-/hostibanni tiedostossa olevalle. Lisäksi fgets palauttaa mukanaan rivinvaihtomerkin, joten joudut sen trimmaamaan pois tutkiessasi muita rivejä - viimeisellä rivillä sitä ei tietenkään ole. Ja output bufferoinnin voit jättää tuosta kaiketi pois, vie vain turhaan resursseja.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta