IP adressen toelaten
Ik heb een probleem met het maken van een script, om bepaalde IP-adressen door te laten. Op een bepaalde pagina wil ik allen NL en Be mensen hebben... Hiervoor gebruik ik dit script:
Code (php)
1
2
3
4
5
2
3
4
5
<?
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
if($var[2]=="nl" OR $var[2]=="be" OR $var[3]=="nl" OR $var[3]=="be"){
?>
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
if($var[2]=="nl" OR $var[2]=="be" OR $var[3]=="nl" OR $var[3]=="be"){
?>
Inhoud wat laten zien moet worden als je togelaten wordt (in HTML)
Deze doet heb opzich goed, eigenlijk te goed. Sommige Nl of Be mensen kunnen nu ook de pagina niet meer bezoeken omdat ze geen .nl of .be in hun Hostname hebben staan.
Dus de oplossing naar mijn idee was, een manier bedenken om bepaalde IP-adressen door te laten. Ik heb wat verschillende dingen geprobeert maar niks werkte goed.
<b>De Ip-adressen die door gelaten moeten worden, zou ik graag in een appart bestand hebben staan.</b> Geen Mysql want daar heb ik helemaal geen ervaring mee. Ben pas net begonnen met Php.
Ik hoop dat iemand hier een oplossing weet.
Als vast bedankt :)
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$ext = end($var);
echo $ext;
?>
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$ext = end($var);
echo $ext;
?>
Edit: Als je niet uit NL of BE komt kan je beter een Engelse fout melding kiezen ;P
Edit2: Dat was helemaal niet je vraag.. hmm kijk eens naar
http://nl.php.net/fread
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
($var[2]=="nl" OR $var[2]=="be" OR $var[3]=="nl" OR $var[3]=="be")
Zit de waardes in een array dit gaat veel makkelijker. Bijvoorbeeld:
@Gerben Jacobs:
Je hebt gelijk tekst kan beter in Engels, heb het al veranderd.
Van dat artikel snap ik niet veel, ben nog maar een beginnertje :P
@Kalle:
Opzich werkt dat van mij wel goed, heb verschillende computers getest en geen een had het .nl of .be verder staan dan 2 of 3 punten.
Het probleem is vooral de mensen die helemaal geen .nl of .be in hun hostname hebben staan. Dus mijn idee voor een oplossing was om bepaalde ip-adressen toe telaten.
Maar hoe??? En het liefst wil ik dan ook nog de Ip-adressen in een appart bestand hebben staan. Want dan kan ik die makkelijk aanpassen.
Code (php)
En dan in "ip.txt" per regel een IP dat je gebanned/geen toegang wil geven.
Ik zoek precies zon script allen, omgedraait.
De Ip-adressen uit dat lijstje moeten juist wel toegelaten worden + alle mensen met .nl en .be in hun Hostname.
Maar bedankt voor het reageren :)
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$data = file_get_contents("ip.txt");
$toelaten = explode("\n", $data);
if($toelaten OR $var[2]=="nl" OR $var[2]=="be" OR $var[3]=="nl" OR $var[3]=="be"){
?>
$var = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$data = file_get_contents("ip.txt");
$toelaten = explode("\n", $data);
if($toelaten OR $var[2]=="nl" OR $var[2]=="be" OR $var[3]=="nl" OR $var[3]=="be"){
?>
Inhoud
Allen zal dit was niet werken... :P
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Hint: Waar "==" staat moet je eens "!=" zetten ;]
Allen meer ook niet. Probeer het wel onder de knie te krijgen.
Php leer je allen niet in een dag :S
Ik werk in mijn website ook het groots gedeelte ook nog allen met HTML, wat ik wel goed kan.
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$host = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$ext = strtolower(end($host));
if($ext != "be" || $ext != "nl") {
$data = file_get_contents("ip.txt");
$banned = explode("\n", $data);
foreach($banned AS $banIP) {
if(trim($banIP) != $_SERVER["REMOTE_ADDR"]) {
die("Geen toegang! Je komt uit ".$ext);
}
}
}
?>
$host = explode(".", gethostbyaddr($_SERVER['REMOTE_ADDR']));
$ext = strtolower(end($host));
if($ext != "be" || $ext != "nl") {
$data = file_get_contents("ip.txt");
$banned = explode("\n", $data);
foreach($banned AS $banIP) {
if(trim($banIP) != $_SERVER["REMOTE_ADDR"]) {
die("Geen toegang! Je komt uit ".$ext);
}
}
}
?>
Hij kijkt eerst of je uit NL of BE komt, zo niet gaat ie kijken of je IP in de ip.txt lijst voorkomt en als ie daar ook niet staat heb je geen toegang!
Dus als je dit boven aan je pagina zet dan werkt het al. Maar let op; een 'die()' is ook echt keihard stop. Ook je eventuele layout die hier achter komt.
Hier zullen de bezoekers zonder .nl en .be blij mee zijn :)