/ / PHP IPv6 a IPv4 Adresy špecifický prístup k webovej stránke - php, ip, ipv6, access, ipv4

PHP IPv6 a IPv4 Adresy špecifický prístup k webovej stránke - php, ip, ipv6, access, ipv4

Chcem obmedziť prístup k používateľom, ktorí nie súpripojený k jednej z WIFI konkrétnej spoločnosti. Takže napríklad máme spoločnosť a táto spoločnosť má dve rôzne WIFI siete na pripojenie. Chcel by som dať prístup iba na stránku, ak je klient pripojený jedným z týchto WIFI.

  • IPv4 jednej z WIFI je napríklad: 123.45.65.101
  • IPv6 inej WIFI je napríklad: 2000: 980: CE5: 1: 4dd9: 47ad: ff9b: 4454

Nasledujúci PHP skript fungoval perfektne v čase, kde bola len adresa IPv4:

if(!in_array($_SERVER["REMOTE_ADDR"], $ip_adres_allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $ip_adres_allow)) {

die("You can"t access this webpage, please try again by your employee.");

exit();
}

Kde $ ip_adres_allow -> pole hodnôt uložených v databáze

Moje otázky sú:

  • Viem, že adresy IPv4 sú rovnaké podľa WIFInezmení sa. Ale adresa IPv6 je rovnaká? Zachoval som niekoľko IPv6 adries od spoločnosti a zdá sa, že začínajú v roku 2000: 980: ce5: 1: XXXX: XXXX: XXXX: XXXX (zatiaľ čo X nie sú rovnaké) Znamená to WIFI má rozsah IPv6?

    • Je 2000: 980: ce5: 1: 4dd9: 47ad: ff9b: 4454 rovnaký WIFI ako 2000: 980: ce5: 1: 55de: de7d: df6e: ea62 napríklad? Alebo je to definitívne istá, že ide o inú sieť WIFI?
  • Existuje spôsob, ako upraviť PHP skript nači je klient pripojený k jednej z WIFIov? Alebo by mal tento skript stále fungovať? Pretože databáza je hardcoded s IPv6 a IPv4 adresami.A ak IPv6 je jedna adresa, môže byť niekto, kto je pripojený k WIFI, ale nemôže získať prístup k stránke, pretože nie je presná zhoda s hodnotou v databáze.

Prosím opravte ma, ak im zle.

Vďaka za prečítanie.

odpovede:

-1 pre odpoveď č. 1

Ako sme hovorili v našom rozhovore, nižšie je vzorový kód, ktorý vám poskytne predstavu o tom, ako vykonať vaše kontroly:

$checkip  = $_SERVER["Something with IP"];
$validate = "";

if($checkip == $_SERVER["Some IPv4"])
{
$ip = the IPv4 address
$validate = 4;
}
else
{
$ip = the ipv6 IP
$validate = 6;
}

if($validate == 4)
{
$ip = echo substr($ip, 0, ???); // IPv4 address
}
else
{
$ip = substr($ip, 0, 15); // 2000:950:ac2:3
}

Opäť: toto je len na to, aby ste nám poskytli predstavu. Musíte vytvoriť svoju vlastnú funkciu, aby ste to správne používali. Navrhujem, aby ste túto funkciu vykonali pri prihlasovaní a poskytli premenné vašej funkcii. Takže nemusíte upravovať svoj skript pre iné spoločnosti, iba premenné, ktoré odosielate. (funkcia by sa mohla jednoducho vrátiť true alebo false;

Veľa šťastia!