IP adress site zien/niet zien

  • Hallo iedereen, alvast iedereen een fijne feestdagen toegewenst!


    Ik zit nu met een probleem namelijk ik wil 2 ip adressen toe laten op mijn site en alle andere een screen.html laten zien.
    Nu heb ik het probleem dat het allowed_ip 2 ook de screen.html ziet ipv. de site
    mijn code:


  • $_SERVER['REMOTE_ADDR'] is veruit de beste die je kan gebruiken omdat het echte IP bevat van de cliënt. (Ga ook nooit van data die door de cliënt worden gestuurd.) Daarnaast de $_SERVER['HTTP_X_FORWARDERD_FOR'] is voor als de cliënt achter een proxy zit dan KAN deze parameter gevuld zijn, echter kan je makkelijk de data van deze $_SERVER parameter aanpassen (Aangezien deze doormiddel van een browser data wordt gevuld) en kan dus niet vertrouwd worden.


    In jou geval indien je geen proxy gebruikt lijkt het me handig dat je heel dat idee er van laat vallen, en zoals zo velen hier hebben ze het idee uit een source van één van de crimes hier, ik zeg niet dat het compleet nutteloos is, maar het voegt niet veel toe aan je programmering.


    Daarnaast gebruik je de functie search_array() kan handig zijn alleen in jou geval is dit niet nodig, in_array doet hier zijn werk goed. Kort gezet dan krijg je het volgende:


    PHP
    <?php
    $allowdIp = array('0.0.0.0.0', '1.1.1.1.1');
    if (!in_array($_SERVER['REMOTE_ADDR'], $allowdIp)) {
    require_once('screen.html');
    } else {
    
    
    }
    ?>


    Dan heb je het in aardig wat regels minder gedaan dan dat je oorsprongelijk had en je hebt het zelfde resultaat. Daarnaast de exit(); die je gebruikt zorgt ervoor dat er voor de rest niks meer kan gebeuren met je script, ikzelf raad dit ook af om te doen vanwege dat je met een simpele } else { er voor kan zorgen dat niks fout gaat en alles correct getoond wordt.

  • Als je het script uitleest dan zie je dat inderdaad gebeurd, je defineerd is de ip's die toegang moeten hebben daarna waneer er geen match in de array (!in_array) kan worden gevonden laat hij doormiddels de if de screen.html zien en anders (}else{) laat hij iets anders zien.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!