Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Adres IP + maski sieciowe
Forum PHP.pl > Forum > PHP
Spirit86
Witam, mam problem, mianowicie stworzyłem mechanizm sesji oparty na adresie IP. Wszystko działa pięknie i zgrabnie, dopóki z jednego ip nie pojawia się wielu uzytkowników. Chciałem, żeby z kazdej maszyny(komputera) adres ip był różny (chodzi mi o wewnętrzne przypisanie ip). Sprawa wygląda tak, pobieram ip, które jest takie:
84.27.248.138
i to jest ip routera sieci, a ja chcę wygenerować z tego ip osobne dla każdego z komputerów, jak to zrobić?
Trochę nakręciłem, ale mam nadzieję, że skumacie o co chodzi. A i jeszcze jedno smile.gif:
$_SERVER['HTTP_X_FORWARDED_FOR'] zwraca mi często pusty string.

Nie chcę używać mechanizmu opartego tylko na cookies, bo wiadomo, że nie wszyscy mają je włączone.
Pozdrawiam
gladiror
Chyba tak nie da sie zrobić winksmiley.jpg Bo to wychodzi od routera, a router ma zew. IP...
Spirit86
hmm, w takim razie jak się tworzy mechanizmy sesji, to o co się je opiera? Przecież niemożliwością jest dołączenie do każdego linku na stronie ID sesji...
gladiror
Sesja polega na tym, że otwierasz przeglądarke i masz unikatową nazwe sesji, zamykasz i otwierasz i masz inną nazwę sesji. Sesje możesz połączyć z ciasteczkami i bazą danych. Możesz np. zapisywać sesje do ciastka i bazy danych, do bazy jeszcze adres publiczny IP i np. przeglądarke (nazwa i jezyk przegladarki). Na tej podstawie możesz sprawdzić czy jest to ta sama osoba... Zależy do czego chcesz to zastosowac...
webdice
Ja dodam że $_SERVER['HTTP_X_FORWARDED_FOR'] nie jest obowiązkową zmienną którą serwery muszą wysłać, rzadko się spotykam z sytuacją kiedy ta zmienna zawiera wewnętrzny adres IP.

Pozdrawiam.
Spirit86
Napisałem już prawie cały CMS, który jest oparty o klasę sesji, którą napisałem dawno, dawno temu, niemniej jednak, klasa przetrzymuje w bazie danych informacje związane z sesją użytkownika, każda sesja ma swoje własne ID, które jest generowane tak:
  1. <? md5($ip); ?>

Sesje są ponadto oparte na ciastkach, gdzie na wszelki wypadek zapisuje jeszcze raz SID. Wszystko działa(ło) bez zarzutów, na localu czy innym serwie, dopóki nie olśniło mnie, że ktoś, kto ma taki sam IP od razu jest zalogowany na moje konto i na odwrót, ja jestem zalogoawny na czyjeś konto. Mogę generować unikatowe ID, ale jeżeli ktoś będzie miał wyłączone cookies, a to ostatnio, nie wiedzieć czemu stało się "trendy", pewnie znów jakiś dziennikarz z czasopisma pokroju fakt napisał, że to jest sposób, aby zabezpieczyć się przed czymśtam... Wracając do tematu, jeżeli ktoś będzie miał wyłączone cookies, a id będzie generowane losowo za pierwszym zainicjowaniem sesji, to po odświeżeniu nie zostanie rozpoznany przez klasę sesji (nie ma cookie, nie identyfikujemy po ip, klasa losuje nowy ID). Pomysł z przeglądarką też mi się nasunął, ale wcale nie jest on a ) bezpieczny b ) użyteczny - nikt nie mówi, że z jednego ip nie może korzystać wiele osób na takiej samej przeglądarce. Dodawanie SID do każdego linku jest prawie niemożliwe, szczególnie przy danych z bazy danych, wyrażenia regularne dodające do linków ID zaorały by tylko niepotrzebnie stronę. Ma ktoś jakiś pomysł na ten "mat"? Zastanawiam się tu jak zidentyfikować unikatowo użytkownika. Czytałem, że adres MAC też odpada... Zamykanie strony dla osób z wyłączonymi cookies wydaja mi się pomysłem amatorskim...

Pozdrawiam
gladiror
webdicepl - lepiej nie zakładaj tak, bo w dalszym ciągu jest dużo ludzi w sieciach osiedlowych...
marcini82
Te kombinacje z adresem IP i ew. innymi parametrami sa do kitu. Zawsze moze sie zdarzyc dwoch uzytkownikow, ktorych zidentyfikjesz jako jednego.
A co do tego:
Cytat
Zamykanie strony dla osób z wyłączonymi cookies wydaja mi się pomysłem amatorskim...

Osoba, ktora jest tak nawiedzona ze wylacza cookies, musi sie liczyc z tym, ze nie bedzie sie w stanie zalogowac na prawie zadna strone. A jesli chce sie gdzies zalogowac, to musi ustawic wyjatek dla danej domeny i juz moze korzystac do woli. Ciasteczka sa wymagane do normalnego funkcjonowania wielu szeroko stosowanych mechanizmow, a jesli ktos swiadomie ogranicza funkcjonalnosc swojej przegladarki, to ja bym sie tym nie przejmowal...
1010
Dziś większość logowań działa na sesji...
Secator
Cytat(marcini82)
Osoba, ktora jest tak nawiedzona ze wylacza cookies, musi sie liczyc z tym, ze nie bedzie sie w stanie zalogowac na prawie zadna strone. A jesli chce sie gdzies zalogowac, to musi ustawic wyjatek dla danej domeny i juz moze korzystac do woli. Ciasteczka sa wymagane do normalnego funkcjonowania wielu szeroko stosowanych mechanizmow, a jesli ktos swiadomie ogranicza funkcjonalnosc swojej przegladarki, to ja bym sie tym nie przejmowal...
Swoja drogą też tego nie rozumie. Skoro są ciastka to czemu z nich nie korzystać albo traktować je jako samo zło. Pozatym w przegladarce można ustawić np. żeby wszystkie sie kasowały po wyłączeniu przeglądarki.. albo przed dodaniem ciastka żeby wyświetlał sie monit (dodajesz tylko te które chcesz..)... sa imho lepsze metody zabezpieczenia sie niż blokada ciastek.


Cytat(1010)
Dziś większość logowań działa na sesji...
Które de facto również korzystają z ciastek tongue.gif (no dobra, chyba ze w adresie przekazujesz SID ;P)
1010
Cytat
CYTAT(1010)
Dziś większość logowań działa na sesji...
Które de facto również korzystają z ciastek tongue.gif (no dobra, chyba ze w adresie przekazujesz SID ;P)

wlasnie dlatego uważam iż blokowanie ciastek to głupota
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.