Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie adresu IP użytkownika
Forum PHP.pl > Forum > PHP
umatik
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
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
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
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
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
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ę haha.gif, a power user nawet jeśli nie będzie chciał jej wykorzystać to wprowadzi Cię w błąd.
umatik
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.