Kanske något sådant här:
<?php
$ip = array("100.100.100.1", "100.100.100.2", "100.100.100.3", "100.100.100.4");
if (in_array($_SERVER["REMOTE_ADDR"], $ip)){
echo "hej";
} else {
echo "dö!";
}
?>
6 svar · 318 visningar · startad av prey
Nån som har ett förslag på hur jag kan jämföra 15 ip-adresser med _SERVER[remote...??
Nåt sånt:
(Finns det något * (vad-som-helst)-tecken? typ 100.100.100.* eller så)?
Eller ska jag loopa if-satsen 15 gånger?
känns lite onödigt att skriva in 15 jämförelser, dessutom kan det ju vara trevligt att kunna öka på till kanske 100 (inte för att behovet finns, men ändå :) )..
Nån som har ett tips??
if ($_SERVER["REMOTE_ADDR"] == (100.100.100.1 ...-->... 100.100.100.15){
echo "hej";
} else {
echo "dö!";
}
Kanske något sådant här:
<?php
$ip = array("100.100.100.1", "100.100.100.2", "100.100.100.3", "100.100.100.4");
if (in_array($_SERVER["REMOTE_ADDR"], $ip)){
echo "hej";
} else {
echo "dö!";
}
?>
tackar för svaret, men det blir så mkt skriva.. jag lyckades lösa det såhär:
$clientip = $_SERVER["REMOTE_ADDR"]; //Klientens IP-adress
$lanserver = $_SERVER["SERVER_ADDR"]; // t.ex: 10.0.0.1
$wanserver = $_SERVER["SERVER_NAME"]; // t.ex: www.mydomain.com
$loop = 0; //Loopens startvärde (är 0 eftersom att den räknar +1 innan någon jämförelse görs
$loopmax = 20; //Antalet "IP-slut" (10.0.0.xxx) som ska testas
$lanserv = explode(".",$lanserver);
while($loop < $loopmax){
$loop = $loop + 1;
if($clientip == ("$lanserv[0].$lanserv[1].$lanserv[2].$loop")){
$loop = 250;
$var = "Hej LAN kompis! Denna sida har adressen $lanserver.";
} else {
$var = "Hej WAN skurk! Denna sida har adressen $wanserver.";
}
}
echo $var;
Så här slipper du loopen
$clientip = $_SERVER["REMOTE_ADDR"]; //Klientens IP-adress
$lanserver = $_SERVER["SERVER_ADDR"]; // t.ex: 10.0.0.1
$wanserver = $_SERVER["SERVER_NAME"]; // t.ex: [url]www.mydomain.com[/url]
$loopmin = 0; //Loopens startvärde (är 0 eftersom att den räknar +1 innan någon jämförelse görs
$loopmax = 20; //Antalet "IP-slut" (10.0.0.xxx) som ska testas
$lanserv = explode(".",$lanserver);
$clientip = explode(".", $clientip);
if($clientip[0] == $lanserv[0] and $clientip[1] == $lanserv[1] and $clientip[2] == $lanserv[2] and $client[3] > $loopmin and $client[3] < $loopmax + 1) {
$var = "Hej LAN kompis! Denna sida har adressen $lanserver.";
} else {
$var = "Hej WAN skurk! Denna sida har adressen $wanserver.";
}
hm, smart grej.. ska nog ändra på det
är det inte enklare och mer extensibelt om du helt enkelt lägger in de snälla ip-adresser i en databas, och sedan jämför posterna i databaserna med $_SERVER["REMOTE_ADDR"]?
om du sedan vill utöka förrådet till 100 eller 1000 ip-nummer är det bara att lägga in dessa i databasen.