logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

PHP: Jak uzyskać wewnętrzne IP użytkownika w sieci lokalnej?

Pocieszny 05 Gru 2006 12:52 3928 12
REKLAMA
  • #1 3297000
    Pocieszny
    Poziom 38  
    Posty: 5218
    Pomógł: 229
    Ocena: 261
    Jak odczytać czyjeś wewnętrzne IP za pomocą skryptu PHP? Chciałem zrobić ankietę, żeby był 1 głos na 1 IP ale w sieci lokalnej wydaje się to niemożliwe przy użyciu $_Server['REMOTE_ADDR'] bo ta zmienna zawiera zewnętrzne IP ...
  • REKLAMA
  • #3 3297139
    arnoldk_20
    Poziom 35  
    Posty: 2172
    Pomógł: 290
    Ocena: 114
    Ten link jest do skryptów ASP a nie php
  • #4 4106978
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    Mam taki sam problem.
    Użyłem konstrukcji:
    
    <?php 
    $ip = $REMOTE_ADDR;
    $host = gethostbyaddr($ip); 
    echo "Adres IP: $ip <BR>"; 
    echo "Host: $host"; 
    ?>
    

    ale pokazuje się jedynie IP zewnętrzne.
    Czy istnieje jakaś metoda na poznanie IP wewnętrznego?
  • REKLAMA
  • #5 4107300
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 332
    A nie starczy użyć ciasteczek?
  • #6 4107359
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    k4be napisał:
    A nie starczy użyć ciasteczek?


    Możesz rozwinąć myśl, bo nie bardzo wiem, jakie zastosowanie mogą mieć tu ciasteczka?

    Powiem dokłanie o co mi chodzi.
    Chciałbym poznać wewnętrzny numer IP, abym mógł przyblokować niechcianą osobę. Gdy użyję IP zewnętrznego przyblokuję wszystkich z danej sieci, a nie o to chodzi.
  • #7 4107585
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 332
    Kiedy klient zrobi to co ma zrobić tylko raz, wysyłasz do niego ciasteczko z czasem ważności na przykład 12 miesięcy. Potem nie dajesz dostępu każdemu, kto to ciasteczko odeśle. I większość użytkowników nie wie jak to usunąć, nawet jak potrafi adres zmienić.
  • REKLAMA
  • #8 4107632
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    k4be napisał:
    Kiedy klient zrobi to co ma zrobić tylko raz, wysyłasz do niego ciasteczko z czasem ważności na przykład 12 miesięcy. Potem nie dajesz dostępu każdemu, kto to ciasteczko odeśle. I większość użytkowników nie wie jak to usunąć, nawet jak potrafi adres zmienić.


    Hmmmm, nawet sprytnie, ale jak wysłać ciasteczko niepostrzeżenie?
    Poza tym wystarczy, że usunie ciasteczka z dysku i po sprawie.
    Nowe programy antywirusowe same podczas uruchamiania lub wyłączania przeglądarki czyszczą ciasteczka, więc może to być mało skuteczne zabezpieczenie. Numer IP też ma swoje wady, np. gdy użytkownik ma neostradę i zmienne IP, ale mimo to jeśli IP jest stałe, to można takiego delikwenta przyblokować.
  • REKLAMA
  • #9 4107696
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 332
    malum napisał:
    Poza tym wystarczy, że usunie ciasteczka z dysku i po sprawie.
    Nowe programy antywirusowe same podczas uruchamiania lub wyłączania przeglądarki czyszczą ciasteczka
    Jak pisałem, więcej ludzi umie zmienić adres niż wywalić ciastka. A przeglądarka, w której by były ciągle usuwane, byłaby mało użyteczna - problem z zalogowaniem gdziekolwiek.
  • #10 4107865
    radek68
    Poziom 20  
    Posty: 414
    Pomógł: 23
    Ocena: 20
    Zdaje się, że IP za NATem czyli to wewnętrzne jest raczej nie do poznania. I wydaje mi sie, że jest to zaleta, a nie wada NATa.
  • #11 4107946
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    radek68 napisał:
    Zdaje się, że IP za NATem czyli to wewnętrzne jest raczej nie do poznania. I wydaje mi sie, że jest to zaleta, a nie wada NATa.


    No właśnie też mam takie obawy, ale miałem nadzieję, że znajdzie się jakiś "artysta" który sobie z tym poradził. Nawet na WP podawane jest jedynie zewnętrzne IP :(

    Trudno, dzięki za pomoc, jak coś sensownego wymyślę to dam znać.
  • #13 4108339
    tzok
    VIP Zasłużony dla elektroda
    Posty: 38687
    Pomógł: 3162
    Ocena: 6459
    Żeby określić LAN_IP trzeba na komputerze ofiary ;) wykonać program (np. w Javie) i przesłać wynik jego działania na serwer.

    Pamiętaj, że kod PHP jest wykonywany na serwerze i do przeglądarki trafia już zwykły kod html.

Podsumowanie tematu

✨ W dyskusji poruszono problem uzyskania wewnętrznego adresu IP użytkownika w sieci lokalnej za pomocą skryptu PHP. Standardowa zmienna $_SERVER['REMOTE_ADDR'] zwraca jedynie zewnętrzne IP, co uniemożliwia jednoznaczne identyfikowanie użytkowników w sieci lokalnej. Próby wykorzystania funkcji gethostbyaddr() również nie dają dostępu do adresów wewnętrznych. Wskazano, że ze względu na działanie NAT, wewnętrzne adresy IP są niewidoczne dla serwera WWW. Jako alternatywę zaproponowano stosowanie ciasteczek (cookies) do identyfikacji użytkowników, co pozwala na ograniczenie liczby głosów do jednego na użytkownika, choć metoda ta ma swoje ograniczenia, np. możliwość usunięcia ciasteczek przez użytkownika lub ich automatyczne czyszczenie przez programy antywirusowe. Podkreślono, że PHP działa po stronie serwera i nie ma bezpośredniego dostępu do danych sieciowych klienta. W celu uzyskania wewnętrznego IP konieczne byłoby uruchomienie programu po stronie klienta (np. w Javie), który przesłałby te dane na serwer.
Wygenerowane przez model językowy.
REKLAMA