Changeset 119760 in spip-zone


Ignore:
Timestamp:
Jan 14, 2020, 5:53:38 PM (13 days ago)
Author:
rastapopoulos@…
Message:

Amélioration : on peut désormais passer des lignes (pas juste séparation virgule donc), et on peut avoir des lignes de commentaire, quand ça commence par #, c'est alors ignoré, tout comme les lignes vides. Cela permet donc de ranger à peu de frais les IP dans le champ, quand on commence à en avoir très beaucoup pour une même zone restreinte.

Location:
_plugins_/acces_restreint_ip/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acces_restreint_ip/trunk/accesrestreintip_options.php

    r100531 r119760  
    3030        if ($zones = sql_allfetsel('id_zone, ips', 'spip_zones', 'ips != ""') and is_array($zones)) {
    3131                foreach ($zones as $zone) {
    32                         $ranges = explode(',', $zone['ips']);
    33                         foreach ($ranges as $range) {
    34                                 $range = trim($range);
    35                                 // Range d'IP contenant - comme séparateur
    36                                 if (preg_match ("/-/",$range))  {
    37                                         $ranges_2 = explode ('-', $range) ;
    38                                         $low_long_ip = ip2long($ranges_2[0]);
    39                                         $high_long_ip = ip2long($ranges_2[1]);
    40                                         if ($long_ip <= $high_long_ip and $low_long_ip <= $long_ip) {
    41                                                 $zones_autorisees[] = $zone['id_zone'];
    42                                                 break; // on a trouvé une IP bonne on ne continue pas plus loin
    43                                         }
    44                                 } // IP individuelle
    45                                 else {
    46                                         if ($long_ip == ip2long($range)) {
    47                                                 $zones_autorisees[] = $zone['id_zone'];
    48                                                 break; // on a trouvé une IP bonne on ne continue pas plus loin
     32                        // On découpe par lignes
     33                        $lignes = explode("\n", $zone['ips']);
     34                        foreach ($lignes as $ligne) {
     35                                // On supprime les commentaires
     36                                $ligne = trim(preg_replace('|^#(.*)$|', '', $ligne));
     37                                // S'il reste quelque chose
     38                                if ($ligne) {
     39                                        // Maintenant on découpe par virgules
     40                                        $ranges = explode(',', $ligne);
     41                                        foreach ($ranges as $range) {
     42                                                $range = trim($range);
     43                                                // Range d'IP contenant - comme séparateur
     44                                                if (preg_match ("/-/",$range))  {
     45                                                        $ranges_2 = explode ('-', $range) ;
     46                                                        $low_long_ip = ip2long($ranges_2[0]);
     47                                                        $high_long_ip = ip2long($ranges_2[1]);
     48                                                        if ($long_ip <= $high_long_ip and $low_long_ip <= $long_ip) {
     49                                                                $zones_autorisees[] = $zone['id_zone'];
     50                                                                break; // on a trouvé une IP bonne pour cette zone, on ne continue pas plus loin
     51                                                        }
     52                                                } // IP individuelle
     53                                                else {
     54                                                        if ($long_ip == ip2long($range)) {
     55                                                                $zones_autorisees[] = $zone['id_zone'];
     56                                                                break; // on a trouvé une IP bonne pour cette zone, on ne continue pas plus loin
     57                                                        }
     58                                                }
    4959                                        }
    5060                                }
  • _plugins_/acces_restreint_ip/trunk/paquet.xml

    r110075 r119760  
    22        prefix="accesrestreintip"
    33        categorie="auteur"
    4         version="1.0.3"
     4        version="1.1.0"
    55        schema="1.0.0"
    66        etat="stable"
Note: See TracChangeset for help on using the changeset viewer.