• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

strona dostępna tylko dla grupy ip a reszta zostaje przekierowywana

Aruba Cloud - Virtual Private Server VPS
+2 głosów
170 wizyt
pytanie zadane 4 stycznia 2021 w PHP przez MateuszSikorski Obywatel (1,070 p.)
Jak zrobić aby strona była dostępna tylko dla grupy ip a reszta zostaje przekierowywana do pliku budowa.php

2 odpowiedzi

+1 głos
odpowiedź 4 stycznia 2021 przez WiktroH Mądrala (6,550 p.)
wybrane 4 stycznia 2021 przez MateuszSikorski
 
Najlepsza

Ja proponuję to zrobić w pliku .htaccess

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^ADRES_IP_1
RewriteCond %{REMOTE_ADDR} !^ADRES_IP_2
RewriteCond %{REMOTE_ADDR} !^ADRES_IP_3
RewriteRule ^(.+)$ budowa.php [QSA,L]

Na początku włączasz silnik samego pliku, potem wykluczasz, że adres IP użytkownika to nie ADRES_IP_1, ADRES_IP_2 ani ADRES_IP_3 (tutaj podkładasz własne adresy; możesz ich dodać więcej lub mniej - ile chcesz), a potem przekierowujesz do pliku budowa.php, poprzez konkatenację (potocznie mówiąc - sklejenie) domeny i nazwy pliku. 

Rozwiązanie z plikiem .htaccess jest o tyle lepsze, że w PHP musisz podpiąć działający kod do przekierowania na każdej podstronie, a ten plik ogarnie całą stronę, łącznie z podfolderami. Warunkiem jest to, że musi się on znajdować w katalogu głównym Twojej domeny na serwerze.

1
komentarz 4 stycznia 2021 przez MateuszSikorski Obywatel (1,070 p.)
Dzięki
+1 głos
odpowiedź 4 stycznia 2021 przez VBService Ekspert (256,600 p.)
edycja 4 stycznia 2021 przez VBService

How to get client IP address in PHP, uzyskany adres można przekonwertować za pomocą ip2long i prosto porównać jak np. poniżej (jako liczby)

function validate_ip($ip) {
    if (strtolower($ip) === 'unknown')
        return false;

    // generate ipv4 network address
    $ip = ip2long($ip);

    // if the ip is set and not equivalent to 255.255.255.255
    if ($ip !== false && $ip !== -1) {
        // make sure to get unsigned long representation of ip
        // due to discrepancies between 32 and 64 bit OSes and
        // signed numbers (ints default to signed in PHP)
        $ip = sprintf('%u', $ip);
        // do private network range checking
        if ($ip >= 0 && $ip <= 50331647) return false;
        if ($ip >= 167772160 && $ip <= 184549375) return false;
        if ($ip >= 2130706432 && $ip <= 2147483647) return false;
        if ($ip >= 2851995648 && $ip <= 2852061183) return false;
        if ($ip >= 2886729728 && $ip <= 2887778303) return false;
        if ($ip >= 3221225984 && $ip <= 3221226239) return false;
        if ($ip >= 3232235520 && $ip <= 3232301055) return false;
        if ($ip >= 4294967040) return false;
    }
    return true;
}

i przekierowanie na konkretną stronę: header('Location: url');

Podobne pytania

0 głosów
3 odpowiedzi 241 wizyt
pytanie zadane 4 lipca 2018 w HTML i CSS przez MartynaJanush Nowicjusz (120 p.)
+1 głos
1 odpowiedź 300 wizyt
pytanie zadane 30 września 2017 w HTML i CSS przez zkkf56 Dyskutant (8,710 p.)
0 głosów
1 odpowiedź 822 wizyt

93,324 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,653 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...