2015-03-26 8 views
7

Czy można znaleźć adres IP (lub w inny sposób zidentyfikować) każdego użytkownika na tym samym "routerze" lub "głównym adresie IP"?PHP - Identyfikacja indywidualnych użytkowników pod tym samym routerem (główny adres IP)


Update, wyjaśnienie kwestii:

Use-case: Chciałabym móc śledzić, czy każdy z N indywidualnych użytkowników komputerów na ewentualnie wspólnej sieci wylądował na stronie.

Obecnie, używając innych fragmentów kodu wykrywania IP na S/O, wydaje się, że identyfikuje on wszystkie N pojedynczych komputerów w sieci jako pochodzących z tego samego adresu IP. Nie pomaga to w rozwiązaniu problemu polegającego na ustaleniu, czy pochodzą one od różnych użytkowników w tej samej sieci, czy też jest to ten sam użytkownik w sieci, który kilkakrotnie trafia na tę stronę.

-

Uwaga: pliki cookie są prawdopodobnie wyłączone.

+0

Zaktualizowano pytanie – ina

Odpowiedz

0

Większość routerów przekazujących umieszcza początkowy adres IP w nagłówku X-Forwarded-For. PHP, można uzyskać dostęp do tego adresu pochodzącego poprzez:

$_SERVER['HTTP_X_FORWARDED_FOR'] 

Należy również wspomnieć, że ten nagłówek jest doskonale może zawierać wiele adresów, jak przechodzi przez żądania dodatkowych routerów pełnomocników. Od Ciebie zależy, który adres faktycznie Cię interesuje.

To także dość trywialne, aby sfałszować nagłówek.

+2

Wątpię, aby było to prawdą w przypadku "większości" routerów - jest to raczej coś, co robi _proxies_.Ale standardowy router domowy z kilkoma urządzeniami podłączonymi do niego za pośrednictwem WiFi lub LAN znacznie bardziej prawdopodobnie nie da (lokalnych) adresów IP urządzeń, które wykonuje NAT ... – CBroe

+0

To prawda. Wyjaśnię to. –

+0

Uważam, że daje to tylko główny adres IP? – ina

1

Niezmiennie. Kiedy NAT jest zaangażowany, najlepiej unikać podawania adresów IP jako identyfikacji konkretnego klienta; zamiast tego rozważ użycie plików cookie do przechowywania identyfikatora sesji dla każdego klienta i wykorzystania tych informacji do rozróżnienia hostów (lub agentów użytkownika), które mają wspólny adres IP.

+0

Jakie jest rozwiązanie, gdy pliki cookie mogą być wyłączone? – ina

+0

Aby porozmawiać z kimkolwiek, kto określa Twoje wymagania. – STW

+0

Jeśli naprawdę tego potrzebujesz, to zechcesz przeprowadzić badania i otworzyć nowe pytanie; to jest dużo, dużo trudniejszy scenariusz. – STW

0

Twoje pytanie jest dość niejasne i mogę wymyślić kilka różnych sposobów, to nie może być interpretowane ...

  1. Biorąc masz wiele wniosków od osób z tego samego zewnętrznego adresu IP (tzn. Są one na sama sieć), czy możesz znaleźć ich lokalny adres IP w tej sieci? no. Nie możesz.
  2. Czy można znaleźć każdy komputer w sieci lokalnej (lokalnie na serwerze)? yes - możesz zaimplementować wykrywanie sieci. Absolutnym najprostszym sposobem byłoby prawdopodobnie otworzenie gniazda na wszystkich możliwych lokalnych adresach IP i zobaczenie, co się dzieje, i dokonanie na tej podstawie oceny sytuacji. Lepszą metodą będzie prawdopodobnie PING dla każdego potencjalnego hosta, jednak nie znam żadnej metody inspekcji systemu, co oznacza, że ​​być może trzeba będzie przeprowadzić pewne badania, aby ustalić, jaki byłby najlepszy sposób.

Jeśli to nie rozwiąże problemu, proszę dać mi znać, co zamierzacie zrobić, a ja poprawię odpowiedź.

+0

Czy PHP pozwala na otwieranie gniazd w ten sposób (# 2)? – ina