Identifezierung durch ip adressen (Intranet) Suche beispiele!

harderph

Erfahrenes Mitglied
Moinsen

Ich batel seit längerem ein ein intranet portal für mich aber das ganze ist mir noch zu unsicher (angriff von draussen und so weiter)! deswegen habe ich mir überlegt das ich eine IP identefezierung brauche also nur bei erlaubten ip-adressen kann man das portal sehen/nutzen! Mein problem ist das ich es nicht fertig bringe ein script dafür zu schreiben weil ich nicht weiss wie ich anfangen soll (bin kein profi)! Könnte mir vieleicht einer helfen! Ach datenbank anbidung wäre nicht schlecht! :confused:
 
Bitte halte dich an die Netiquette #15.

Ansonsten ist es "relativ" einfach.

Du machst einen Array mit allen erlaubten IP Adressen:

PHP:
$allowed_ip = array('111.222.333.444', '222.111.333.444');

Danach gehst du dazu über und überprüft ob die momentane IP der Zugriff erlaubt ist:

PHP:
if(in_array($_SERVER['REMOTE_ADDR'], $allowed_ip) === false) 
{
  echo "Access denied";
}
else
{
  # deine Seite
}

Die IP wird also per [phpf]in_array[/phpf] geprüft, ob sie in deinem Array drin ist, falls nein (=== prüft auf eine typensichere Antwort) wird Access Denied ausgegeben oder etwas sonstiges.
Falls ja, kannst du deine Seite anzeigen lassen.
 
Hallo!

Und warum PHP die Arbeit machen lassen?
Apache bietet mit .htacces doch schon die Möglichkeit nur bestimmten Adressbereichen den Zugriff zu gestatten.
So haben alle Clients Zugriff, die mit 192.168. begiinen..... alle anderen bekommen ein "Forbidden":
Code:
authType    basic
authName    "Interner Bereich"
order       deny,allow
deny from   all
allow from  192.168.
Gruss Dr Dau
 
Jetzt habe ich ja dieses array mit datenbank anbindung gemacht aber wenn ich jetzt zwei rechner erlaube zugriff zuhaben geht nur einer und zwar der letzte eintrag in der datenbank (denn zuletzt freigegebenen PC) ich weiss nicht was ich falsch mache! Das script erkennt nur ein pc ich möchte aber der er alle erkennt die in der datenabnk sind!

PHP:
mysql_connect($db_host,$db_user,$db_password);
mysql_select_db("$db_name");
$resultr = mysql_query("SELECT arbeitsplz_ip FROM arbeitsplatz_kz_wif_id");
while($row = mysql_fetch_array($resultr))  
{
$allowed_ip = array($row["arbeitsplz_ip"]); 
}

if(in_array($_SERVER['REMOTE_ADDR'], $allowed_ip) === false)  
{

da brauche ich doch noch ein bisschen hilfe ich dachte das ich selber hinbekomme!:suspekt:
 
Ist doch klar ... Es wird ja auch nur die letzte IP im Array gespeichert.

Code:
mysql_connect($db_host,$db_user,$db_password);
mysql_select_db("$db_name");
$allowed_ip = array();
$resultr = mysql_query("SELECT arbeitsplz_ip FROM arbeitsplatz_kz_wif_id");
while($row = mysql_fetch_array($resultr))  
{
array_push($allowed_ip, $row["arbeitsplz_ip"]);
}

if(in_array($_SERVER['REMOTE_ADDR'], $allowed_ip) === false)  
{

So dürfte es klappen :)
 
Zurück