php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.12.2011, 11:57  
Benutzer
 
Registriert seit: 04.10.2011
Beiträge: 48
PHP-Kenntnisse:
Anfänger
Erdbeer ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Ip Sperre funktioniert bei einer 2 Ip nicht mehr

Ich habe folgendes Problem, meine Ip Sperre funktioniert nicht mehr, wenn ich mehr als 1 eine Ip in die ipbans.data eintrage warum?

index.php
PHP-Code:
// IP Validieren
function isBanned$ipAdressString$banlistFile 'doc/ipbans.data'$entrySep "\r\n" ) {
   
$inboundIPArray explode('.'trim($ipAdressString));

   if ( 
is_readable($banlistFile) ) {
      
// load file
      
$banlist file_get_contents($banlistFile);

      
// create array of contents
      
$banlistArray explode($entrySep$banlist);

      
// filter IPs, exclude corrupt definitions from banlist
      
foreach ( $banlistArray as $key => &$entry ) {
         
$entry explode('.'trim($entry));
         if ( 
count($entry) != ) unset($banlistArray[$key]);
      }

      
// process current ip
      
foreach ( $banlistArray as $item ) {
         
$current = array();
         foreach ( 
$item as $boundPos => $ipToken ) {
            if ( (int)
$ipToken == (int)$inboundIPArray[$boundPos] || $ipToken == '*' )
               
$current[$boundPos] = 1;
            else 
$current[$boundPos] = 0;
         }
         if ( 
array_sum($current) == ) return true;
      }
   }
   return 
false;
}

if ( 
isBanned$currentAddress ) ) echo 'Deine IP-Adresse wurde auf unserem System gesperrt!';
else 
'Willkommen :)'
ipbans.data
PHP-Code:
178.8.44.153
178.8
.*.*
91.9.65.205
91.9
.*.* 
Erdbeer ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.12.2011, 14:21  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
PHP-Code:
// IP Validieren
function isBanned$ipAdressString$banlistFile 'doc/ipbans.data'$entrySep "\r\n" ) {
   
$inboundIPArray explode('.'trim($ipAdressString));

   if ( 
is_readable($banlistFile) ) {
      
// load file
      
$banlist file_get_contents($banlistFile);

      
// create array of contents
      
$banlistArray explode($entrySep$banlist); 
Ins Blaue geraten: Deine Bannlisten-Datei enthält nicht \r\n als Zeilentrenner (sondern nur \n).

PHP-Code:
      $banlist file_get_contents($banlistFile);

      
// create array of contents
      
$banlistArray explode($entrySep$banlist); 
kann man zusammenfassen:
PHP-Code:
$banlistArray file($banlistFile); 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 09.12.2011, 20:56  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

file() nimmt die Zeilenschaltungen mit in den Array. Man sollte das mit dem zweiten Parameter unterdrücken:

$banlistArray = file($banlistFile,FILE_IGNORE_NEW_LINES);
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 09.12.2011, 20:59  
Erfahrener Benutzer
 
Registriert seit: 10.01.2010
Beiträge: 386
PHP-Kenntnisse:
Fortgeschritten
ChrisvA befindet sich auf einem aufstrebenden Ast
Standard

Was vielleicht auch mal interessant wäre, ist die Ausgabe von print_r($banlistArray);
Dann sieht man ja wo es hakt.
ChrisvA ist offline   Mit Zitat antworten
Alt 14.12.2011, 20:54  
Benutzer
 
Registriert seit: 04.10.2011
Beiträge: 48
PHP-Kenntnisse:
Anfänger
Erdbeer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

\r habe ich herausgenommen scheint nun zufunktionieren vielen Dank.
Erdbeer ist offline   Mit Zitat antworten
Alt 14.12.2011, 22:13  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Du kommst mit einer foreach aus, wenn Du's anders angehst:
PHP-Code:
function isBanned$ipAdressString$banlistFile 'doc/ipbans.data' ) {
   
$inboundIPArray explode'.'trim($ipAdressString) );

   if( 
is_readable($banlistFile) ) {
      
// get valid ip addresses from file
      
$banlistArray preg_grep'/^((\d{1,3}|\*)\.){3}(\d{1,3}|\*)$/'file($banlistFileFILE_IGNORE_NEW_LINES) );

      
// process current ip
      
foreach( $banlistArray as $item ) {
        
// check for masked octets
        
$ipOctets explode'.'$item );
        
$ipMasked = (int)array_search'*'$ipOctets );

        
// slicing unmasked octets
        
$ipOctets array_slice$ipOctets0count($ipOctets) - $ipMasked );
        
$ipCurrent array_slice$inboundIPArray0count($ipOctets) );

        
// filter
        
if( == count(array_diff($ipCurrent$ipOctets)) ) return true;
      }
   }
   return 
false;

__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Werte von Datei A an Funktion von Datei B funktioniert nicht Susi25 PHP Einsteiger 8 20.08.2011 15:47
.htaccess funktioniert nicht im Server? Aceh PHP Einsteiger 2 21.05.2011 15:42
jQuery Autocomplete AutoFill funktioniert nicht Atikos JavaScript, Ajax und mehr 15 12.04.2011 16:16
unlink() funktioniert nicht Chacky PHP Einsteiger 6 17.02.2011 16:22
[Erledigt] str_replace funktioniert nur lokal Cogax PHP Tipps 2010 19 27.10.2010 21:28
IP Sperre bei Star Rating System UNIKAT JavaScript, Ajax und mehr 6 24.10.2010 16:34
Code funktioniert plötzlich nicht mehr nach Serverumzug Hawk PHP Tipps 2010 4 18.08.2010 08:12
Verschlüsselung funktioniert nicht richtig netmario PHP Tipps 2010 2 19.05.2010 22:57
[Erledigt] Voting funktion mit user sperre NICHT ip sperre Naver PHP Tipps 2010 15 15.05.2010 21:07
mod_rewrite mit slash/ohne slash funktioniert nur teilweise taurus Server, Hosting und Workstations 4 13.09.2009 12:57
[Erledigt] IP sperre funktioniert nicht richtig w35T3n PHP Tipps 2009 9 02.08.2009 10:42
[ERLEDIGT]PHP while-Schleife für Ausgabe funktioniert plötzlich nicht fuckinghot19 PHP Tipps 2009 6 05.06.2009 22:28
[Erledigt] Umlaute ersetzen funktioniert nicht richtig BlackSpirit PHP Tipps 2009 19 20.04.2009 12:04
send button funktioniert nicht, finde fehler nicht selma123 PHP Tipps 2008 3 17.09.2008 11:57
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum