Gå til innhold

[LØST]Trenger ip blokkerer php basert[/LØST]


Anbefalte innlegg

Hei,

 

jeg er ute etter et php script som gjør at du kan blokkere ip'er fra en annen php fil om det ble forstålig. de blokkerte ip'ene skal skrives på en txt fil, lar dette seg gjøre uten mysql? og hvordan.

 

takker for alle svar og god jul alle sammen...

Endret av The_Lozer
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

i en fil som inkluderes i toppen av filen som skal blokkeres:

<?php

// fil-med-blokkIP-funksjon-i.php

function blokkIP($ip){
 $fil = file("blokkerteIPer.txt"); // si her at txt-filen ligger i samme mappe som filen som skal kunne blokkeres :)
 if(in_array($ip, $fil)){
   return true;
 }
 return false;
}
?>

 

i en fil du vil blokkere:

<?php
include "fil-med-blokkIP-funksjon-i.php";

if( blokkIP($_SERVER["REMOTE_ADDR"]) ){
 echo "Du er blokkert ifra denne filen!";
 exit(0);
}


// blablabla-koder nedover...

?>

 

kanskje denne virker? -utestet

Endret av Slettet+142
Lenke til kommentar
i en fil som inkluderes i toppen av filen som skal blokkeres:

<?php

// fil-med-blokkIP-funksjon-i.php

function blokkIP($ip){
 $fil = file("blokkerteIPer.txt"); // si her at txt-filen ligger i samme mappe som filen som skal kunne blokkeres :)
 if(in_array($ip, $fil)){
   return true;
 }
 return false;
}
?>

 

i en fil du vil blokkere:

<?php
include "fil-med-blokkIP-funksjon-i.php";

if( blokkIP($_SERVER["REMOTE_ADDR"]) ){
 echo "Du er blokkert ifra denne filen!";
 exit(0);
}


// blablabla-koder nedover...

?>

 

kanskje denne virker? -utestet

7568110[/snapback]

 

 

jojo funket den, men hvordan skal jeg skille ip'ene i blokkerteiper.txt?

Lenke til kommentar
<?php
$handle = file("blokket.txt");
foreach($handle as $linje) {
if($_SERVER['REMOTE_ADDR'] == $linje)
echo "Du er blokkert ifra denne filen!";
}
?>

 

Her kan du ha en ip per linje ihvertall.

7582141[/snapback]

 

 

Fikk den ikke til å virke... ble bare en hvit bakgrunn :( Hva er feil?

Lenke til kommentar
Gjest Slettet+142
<?php
$handle = file("blokket.txt");
foreach($handle as $linje) {
if($_SERVER['REMOTE_ADDR'] == $linje)
echo "Du er blokkert ifra denne filen!";
}
?>

 

Her kan du ha en ip per linje ihvertall.

7582141[/snapback]

 

 

Fikk den ikke til å virke... ble bare en hvit bakgrunn :( Hva er feil?

7583208[/snapback]

 

<?php
$handle = file("blokket.txt");
foreach($handle as $linje) {
if($_SERVER['REMOTE_ADDR'] == $linje)
echo "Du er blokkert ifra denne filen!";
else echo "Dette skriver jeg bare ut for å teste om skriptet kjører ({$linje})..<br />";

}
?>

Endret av Slettet+142
Lenke til kommentar
<?php
$handle = file("blokket.txt");
foreach($handle as $linje) {
if($_SERVER['REMOTE_ADDR'] == $linje)
echo "Du er blokkert ifra denne filen!";
}
?>

 

Her kan du ha en ip per linje ihvertall.

7582141[/snapback]

 

 

Fikk den ikke til å virke... ble bare en hvit bakgrunn :( Hva er feil?

7583208[/snapback]

 

 

 

<?php
$handle = file("blokket.txt");
foreach($handle as $linje) {
if($_SERVER['REMOTE_ADDR'] == $linje)
echo "Du er blokkert ifra denne filen!";
else echo "Dette skriver jeg bare ut for å teste om skriptet kjører ({$linje})..<br />";

}
?>

7583352[/snapback]

 

 

Har du sett... det funka, da kom følgene opp: Dette skriver jeg bare ut for å teste om skriptet kjører (10.0.0.2 )..

Dette skriver jeg bare ut for å teste om skriptet kjører (10.0.0.3 )..

 

der ser du at det er noen ip'er som skal blokkeres så det andre funker ikke:(

Endret av The_Lozer
Lenke til kommentar
Jaok, jeg regnet med du hadde testet med å prøve å legge din ip i blokklisten. menmen :p:)

 

Så kan du ha dette i en funksjon i toppen av dokumentet, og ha exit() rett etter echoen. (husk { og } )

 

da ser ikke folk som er blokket noe annet enn den første echoen. :)

7583555[/snapback]

 

 

jojo, den viser hvem som skal blokkeres men den blokkerer ikke de som skal blokkeres.

Lenke til kommentar

Her har du en script:

 

<?php

/**
 * @name  	IP Block
 * @Desc  	Blockerer brukere utifra en tekstfil
 * @param  	$filename, $ip
 * @copyright  OXODesign TEAM
 * @author  	OXODesign
 * Web:  	http://www.oxo-design.net
 * @version  1.0
 */
class cl_ip_block {
 
 var $filename = "ip.odt"; // En ip for hvert linje
 var $ip;
 
 /**
  * Åpner filen og sjekker brukerens ip finnes i tekstfilen.
  *
  * @return true or false
  */
 function func_check_ip(){
 	$get_ip = $_SERVER['REMOTE_ADDR'];
 	$this->ip = file($this->filename);
 	
 	foreach ($this->ip as $block_ip){
   if (trim($block_ip) == $get_ip) {
   	$status = "blocked";
   }
   
 	}
 	
 	return $status;
 }
 
}

$check_ip = new cl_ip_block;
if($check_ip->func_check_ip() == "blocked"){
 echo "Du er blokkert fra denne siden."; 
 exit();
}


echo "Her kommer teksten som blir vist for folk som ikker er blokkert!";

?>

 

EDIT: Litten feil jeg ikke så i går!

TESTET: Alt fungerer OK.

 

Husk at du må opprette en fil "ip.odt" og legge blokkerte ip-er der!

Endret av OXODesign
Lenke til kommentar
denne siden har jeg lagt ut et scripr som skal blokkere uønskede ip-adresser.

7585853[/snapback]

 

ok, jeg så i kodinga der, men hvordan kan den hente ip'er fra en flatfil og blokkere dem?

7588054[/snapback]

 

jeg har laget det slik at den henter ip-adressene fra en array og kjører gjennom alle arrayene i en løkke

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...