Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Accesso a range
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • H
      hiwap3 User Attivo • ultima modifica di

      Accesso a range

      ragazzi conoscete il codice per abilitare l'accesso a una pagina php SOLO a determinati range come:

      10...*

      ???

      grazie a chi mi aiuterà:ciauz:

      ps:
      non voglio farlo tramite htaccess ma con codice php...:p

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao hiwap3,

        Puoi fare un explode, in modo da ottenre 4 variabili con le 4 parti dell'ip, e successivamente crearti le tue regole...
        Altrimenti puoi usare le espressioni regolari.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • H
          hiwap3 User Attivo • ultima modifica di

          Praticamente vorrei un codice che rileva l'ip. Se l'ip è un range bloccato mi stampa una pagina di errore accesso..
          Ma il codice non so come crearlo 😞

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • F
            filippotoso User Attivo • ultima modifica di

            Ci sono principalmente due metodi:

            • Usare una accoppiata IP/Netmask (es. 192.168.1.0/255.255.255.0)
            • Usare una espressione regolare (es. 192.168.1.*)

            Per gli IP/Netmask puoi dare una occhiata alla classe Pear Net_IPv4:

            pear.php.net/package/Net_IPv4

            Il metodo ipInNetwork() dovrebbe fare al caso tuo.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • H
              hiwap3 User Attivo • ultima modifica di

              Ma nessuno riesce a buttarmi giù un codice che faccia al caso mio???:(

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • F
                filippotoso User Attivo • ultima modifica di

                Studiati questo codice:

                [php]<?php

                function ip2double($ip) {
                return (double)(sprintf("%u", ip2long($ip)));
                }

                function in_network($ip, $netip = '192.168.0.0', $netmask = '255.255.255.0') {

                $network = long2ip(ip2long($netip) & ip2long($netmask));
                $broadcast = long2ip(ip2long($netip) | (ip2long($netmask) ^ ip2long("255.255.255.255")));    
                
                $net = ip2double($network);
                $bcast = ip2double($broadcast);
                $ip = ip2double($ip);
                if ($ip >= $net && $ip <= $bcast) {
                    return true;
                }
                return false;
                

                }

                var_dump(in_network('192.168.1.1', '192.168.1.0', '255.255.255.0'));
                var_dump(in_network('192.168.1.1', '192.168.2.0', '255.255.255.0'));
                var_dump(in_network('192.168.1.1', '192.168.0.0', '255.255.0.0'));
                var_dump(in_network('10.1.1.1', '10.2.0.0', '255.255.0.0'));

                ?>[/php]

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • H
                  hiwap3 User Attivo • ultima modifica di

                  😮
                  Io ne avevo fatto uno opposto per bloccare dei range.
                  Ora lo voglio ammettere solo quelli della lista, e inserivo il codice

                  10...*
                  151...*

                  e quelli che iniziavano cosi venivano bloccati...nel tuo non capisco perchè metti tutti quei numeri 😄

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • F
                    filippotoso User Attivo • ultima modifica di

                    @hiwap3 said:

                    nel tuo non capisco perchè metti tutti quei numeri 😄
                    Il primo parametro ($ip) è l'IP che desideri verificare.
                    Il secondo parametro ($netip) è l'IP della rete (es. 10.0.0.0, 151.0.0.0, etc.).
                    Il terzo parametro ($netmask) è la netmask, la maschera di rete utilizzata per "calcolare" il range di IP.

                    Nel tuo caso avresti dovuto utilizzare un codice come questo:

                    [php]$block = !in_network($_SERVER['REMOTE_ADDR'], '10.0.0.0', '255.0.0.0');
                    // ...
                    $block = !in_network($_SERVER['REMOTE_ADDR'], '151.0.0.0', '255.0.0.0');[/PHP]

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • H
                      hiwap3 User Attivo • ultima modifica di

                      E per mettere una pagina di errore in php integrata se il range è compreso??

                      tipo:

                      NON TI è PERMESSO ACCEDERE!

                      Come lo faccio???:S

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • H
                        hiwap3 User Attivo • ultima modifica di

                        La variabile block nel codice di prima dov'era???:o

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • F
                          filippotoso User Attivo • ultima modifica di

                          Il codice di prima era dimostrativo. La chiamata a var_dump() serviva a visualizzare il valore restituito da in_network().

                          Per aggiungere il controllo ti basta un ciclo (es. per ciclare su più coppie ip/netmask) ed una variabile. Ad esempio:

                          [php]<?php

                          function ip2double($ip) {
                          return (double)(sprintf("%u", ip2long($ip)));
                          }

                          function in_network($ip, $netip = '192.168.0.0', $netmask = '255.255.255.0') {

                          $network = long2ip(ip2long($netip) & ip2long($netmask));
                          $broadcast = long2ip(ip2long($netip) | (ip2long($netmask) ^ ip2long("255.255.255.255")));    
                          
                          $net = ip2double($network);
                          $bcast = ip2double($broadcast);
                          $ip = ip2double($ip);
                          if ($ip >= $net && $ip <= $bcast) {
                              return true;
                          }
                          return false;
                          

                          }

                          $ranges = array();
                          $ranges[] = array('ip' => '10.0.0.0', 'netmask' => '255.0.0.0');
                          $ranges[] = array('ip' => '151.0.0.0', 'netmask' => '255.0.0.0');

                          $blocked = false;
                          foreach ($ranges as $range) {
                          $blocked = $blocked || in_network($_SERVER['REMOTE_ADDR'], $netip = '192.168.0.0', $netmask = '255.255.255.0');
                          }

                          if ($blocked) {
                          die('NON TI è PERMESSO ACCEDERE!');
                          }

                          echo('Accesso consentito');

                          ?> [/php]

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • H
                            hiwap3 User Attivo • ultima modifica di

                            mmm...se non disponibile che apra la pagina notaccess.php in automatico e se disponibile la normale homepage???:D

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • H
                              hiwap3 User Attivo • ultima modifica di

                              :mmm:

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti