umatik
7.02.2013, 15:46:21
Chodzi mi o prostą rzecz:
Użytkownik loguje się, a do bazy danych zapisuje się informacja :
- data i godzina logowania
- login użytkownika
- IP komputera z którego użytkownik się logował
- czy logowanie się powiodło
No i natrafiłem na problem, ponieważ $_SERVER['REMOTE_ADDR'] pokazuje mi IP wewnętrzne. Wyczytałem gdzieś że nie da się sprawdzić adresu IP.
To w jaki sposób mam pobrać informację o prawdziwym IP użytkownika ?
netmare
7.02.2013, 15:49:51
No pokazuje Ci takie jakie widoczne jest z punktu widzenia serwera. Jak masz serwer wewnątrz to Ci pokaże wewnętrzne, jak masz na zewnątrz to zewnętrzne. Nie da się sprawdzić wewnętrznego z zewnątrz i dlatego spośród IP które zalogujesz może wychodzić wielu użytkowników.
umatik
7.02.2013, 15:55:02
hmm ....
To jak mam zidentyfikować z jakiego IP nastąpiło logowanie ? Ale tak, żeby w razie potrzeby można było namierzyć komputer z jakiego ktoś się zalogował i np. namieszał coś w systemie do którego się zalogował.
sowiq
7.02.2013, 16:37:47
Cytat
To w jaki sposób mam pobrać informację o prawdziwym IP użytkownika ?
A dlaczego uważasz, że IP wewnętrzne nie jest prawdziwym IP użytkownika? Jest to po prostu IP z (pod)sieci, z której wychodzi request. Jeśli klient i serwer znajdują się w jednej sieci (np. jedna firma, mieszkanie), to widoczne dla serwera IP będzie jednocześnie IP klienta z tej samej sieci. Możesz np. zbanować to IP, bo adresy zewnętrzne i wewnętrzne mają różne klasy (różne zakresy "numerków"). Więc nie ma możliwości, że jakiś komputer spoza Twojej sieci będzie miał takie samo IP jak komputer wewnątrz niej.
http://pl.wikipedia.org/wiki/IPv4 -> Prywatne adresy IPv4
umatik
7.02.2013, 18:09:08
Do serwera będą się logować ludzie z poza sieci wewnętrznej. Ponieważ w systemie będą przechowywane dosyć ważne informacje, potrzebuję wiedzieć kto i z jakiego IP logował się do systemu.
Czy zatem $_SERVER['REMOTE_ADDR'] jest wystarczające, aby w przypadku zaistnienia konieczności, namierzyć skąd dany użytkownik się logował ?
netmare
7.02.2013, 18:28:42
Nigdy nie będziesz miał 100% pewności skąd się ktoś logował. Poczytaj co to jest proxy, anonymous proxy, high anonimity proxy, cgi-proxy, to może Ci się wyklaruje dlaczego. Możesz szukać na w $_SERVER['X_FORWARDED_FOR'] i tym podobnych, ale obawiam się że zamaist wyłapać informacje których poszukujesz to zostawisz sobie dziurę

, a power user nawet jeśli nie będzie chciał jej wykorzystać to wprowadzi Cię w błąd.
umatik
7.02.2013, 18:43:47
Nie no jasne, że dla chcącego nic trudnego i zdaje dobrze sobie z tego sprawę. Chodzi mi o podstawowe informacje o logującym się użytkowniku.
Ok zostawiam zatem $_SERVER['REMOTE_ADDR'] jako informację o IP użytkownika.
netmare
7.02.2013, 18:54:45
Może inaczej, jeśli spodziewasz się poważnych naruszeń, zamierzasz składać doniesienia do prokuratury i liczysz na to że ktoś tam będzie temat drążył to loguj sobie cały nawet cały $_SERVER. Musisz jednak pamiętać że dane mogą być spreparowane przez użytkownika więc odpowiednio je zabezpieczyć przy zapisie do bazy i wyświetlaniu na stronie. Jeśli natomiast chcesz prewencyjnie banować adres na godzinę i masz w nosie innych użytkowników którzy mogą wychodzić z tego adresu to REMOTE_ADDR wygląda sensownie.
umatik
9.02.2013, 12:23:15
Może być taka sytuacja ....
Ale dalej muszę podrążyć temat ...
np.:
na forum GW, jak nie zaloguje się, to przy poście widać z jakiego adresu IP gość zostawił wpis. Na nie jednej stronie typu rapidshare, też jest identyfikacja adresu IP: "Z pańskiego IP adresu idzie pobranie IP=85.XX.XX.XX";
To w jaki sposób jest sprawdzane IP ?
używam zewnętrznego serwera www
ps. w moim przypadku: mam stały adres IP, ale komputer z którego się łącze z internetem jest podłączony do Switcha, dlatego REMOTE_ADDR pokazuje mi wewnętrzny adres IP
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.