Wprowadzenie do adresu IP

Aby nauczyć się „Uzyskaj adres IP w PHP”, najpierw przestudiujemy adres IP. Adres IP lub adres protokołu internetowego to adres, który jest numerem lub etykietą, którą ma każdy system lub urządzenie podłączone do sieci. Adres IP jest przypisany do każdego takiego urządzenia. Urządzenia te używają protokołu internetowego do dowolnego rodzaju komunikacji.

Wersja IP

Poniżej punktów Wyjaśnij wersję IP:

  • Wersja IP jest zdefiniowana zgodnie z bitem etykiety protokołu internetowego. Na przykład IPv4, która jest wcześniejszą wersją, określa adres protokołu internetowego o numerze 32-bitowym. Wraz z rozwojem Internetu powstał IPv6, który określa 128-bitową etykietę IP. IPv6 jest używany od 1995 roku do dziś. Adres protokołu internetowego jest napisany zrozumiałym dla człowieka językiem. Przykład IPv4 jest następujący, 170.17.260.2, a przykładem dla IPv6 jest 2001: db8: 2: 1434: 1: 587: 5: 2.
  • Przestrzeń pozyskiwana przez adresy protokołów internetowych jest zarządzana globalnie. Rejestr o nazwie Internet Assigned Numbers Authority wraz z pozostałymi pięcioma rejestrami regionalnymi umożliwia zarządzanie przestrzenią dla adresów protokołów internetowych. IANA jest odpowiedzialna za przydzielanie przestrzeni adresów adresów internetowych i zarządzanie nimi dla wszystkich użytkowników końcowych i innych dostawców Internetu w wyznaczonych obszarach lub terytoriach. Podobnie wszystkim urządzeniom podłączonym do sieci dostawcy usług internetowych przypisany jest unikalny adres protokołu internetowego.
  • Istnieją statyczne adresy protokołów internetowych, które nie zmieniają się często, są one dostarczane do serwerów. Dostawcy usług internetowych udostępniają określony i unikalny adres protokołu internetowego urządzeniu korzystającemu z modemu. Ten adres IP jest unikalny dla sesji i może ulec zmianie w następnej sesji.

Identyfikacja i zwrot adresu IP w PHP

Ze względów bezpieczeństwa witryny zbierają adresy IP osób odwiedzających ich witryny. Istnieje prosty sposób na uzyskanie tego adresu w PHP. W PHP istnieje specjalna tablica, która pomaga i zwraca adres IP twojego komputera. Tablica jest znana jako „$ _SERVER”. Zawiera informacje o ścieżkach, nagłówkach i lokalizacjach skryptów. Serwer WWW tworzy informacje wymagane dla tablicy $ _SERVER. Czasami serwer nie tworzy lub nie udostępnia wszystkich informacji wymaganych przez tablicę, może niektóre z nich pominąć. Zatem w takich przypadkach można zastosować inną tablicę. Jest zapisany jako „SERVER_ADDR”. Ta tablica zwraca adres IP serwera, na którym działa skrypt.

Metody używane do uzyskania adresu IP w PHP

Poniżej znajduje się przykład użyty do uzyskania adresu IP w php:

Przykłady # 1

Najprostszym sposobem jest użycie $ _SERVER z 'REMOTE_ADDR', zwróci adres IP użytkownika, który aktualnie przegląda stronę.

  • Przykład użycia („REMOTE_ADDR”) do identyfikacji adresu IP serwera w PHP.

Kod:

<_?php
echo 'User IP - '.$_SERVER('REMOTE_ADDR');
?>

Wynik:

Przykład nr 2

Inna metoda, zwana „SERVER_ADDR”, która jest również używana do pobierania adresu IP serwera.

  • Przykład użycia („SERVER_ADDR”) do identyfikacji adresu IP serwera w PHP.

Kod:

<_?php
// PHP program to retrieve server's Internet Protocol address
// Creating a variable to store the server address
$ip_server = $_SERVER('SERVER_ADDR');
// Displaying the retrieved address
echo "Server IP Address is: $ip_server";
?>

Wynik:

Objaśnienie do powyższego programu: Powyższa przykładowa tablica ($ _SERVER) jest pomocna, jeśli maszyna nie jest podłączona przez serwer proxy. Jeśli urządzenie jest podłączone do Internetu za pośrednictwem lub przez serwer proxy, $ _SERVER („REMOTE_ADDR”) w PHP nie zwraca poprawnego adresu IP. Zwraca tylko adres IP serwera proxy i komputera użytkownika lub klienta. W tej sytuacji używana jest inna metoda uzyskania poprawnego adresu.

Przykład nr 3

Poniższy przykład służy do zwrócenia prawidłowego i rzeczywistego adresu IP, nawet jeśli maszyna ukrywa się za serwerem proxy. Wykorzystuje dodatkową parę zmiennych SERVER, które są dostępne, aby uzyskać dokładny adres IP systemu lub maszyny klienta. Są one znane jako HTTP_CLIENT_IP i HTTP_X_FORWARDED_FOR.

  • Przykład użycia („HTTP_CLIENT_IP”) i („HTTP_X_FORWARDED_FOR”) w celu zidentyfikowania adresu IP serwera w PHP.

Kod:

<_?php
function RetrieveUserIP()
(
if(!empty($_SERVER('HTTP_CLIENT_IP')))
(
$address=$_SERVER('HTTP_CLIENT_IP');
)
elseif(!empty($_SERVER('HTTP_X_FORWARDED_FOR')))
(
$address=$_SERVER('HTTP_X_FORWARDED_FOR');
)
else
(
$address=$_SERVER('REMOTE_ADDR');
)
return $address;
)
echo 'User IP Address is'.RetrieveUserIP();
?>

Wynik:

Aby zrozumieć przebieg działań powyższego kodu, można zapoznać się z poniższym schematem blokowym.

Objaśnienie do powyższego programu: W powyższym przykładzie do odzyskania adresu IP wykorzystano dwie zmienne („HTTP_CLIENT_IP”) i („HTTP_X_FORWARDED_FOR”). W programie podejmujemy pierwszą próbę bezpośredniego usunięcia go z komputera za pomocą HTTP_CLIENT_IP. Jeśli to nie jest możliwe, próbujemy uzyskać adres IP „przesłany dalej” za pomocą HTTP_X_FORWARDD_FOR. Gdy oba warunki spadną do zera, próbujemy uzyskać adres IP za pomocą zmiennej REMOTE_ADDR.

Punkty do zapamiętania

Poniżej należy pamiętać o uzyskaniu adresu IP w php:

1. Gdy uruchomiliśmy powyższy kod, zwracany adres IP jest wyświetlany jako: 1. Jest to znane jako adres pętli zwrotnej, który jest reprezentowany jako 127 razy zera, po którym następuje 1, który jest (0000…. 127 razy… .1). Jeśli mamy to zapisać, zostanie zapisane jako:

2. Ale w IPv6 możemy przedstawić tę dużą etykietę w krótkiej formie. Więc jeśli wszystkie zera są w jednym bloku, można je zastąpić pojedynczym zerem. Kiedy więc zastosujemy się do powyższej zasady, staje się: 0: 0: 0: 0: 0: 0: 0: 0001;

3. Ponownie, zera można wyeliminować i pozostaje nam :: 0001

4. Który ponownie zostaje zredukowany do „ :: 1 ”, a więc wyjścia.

Wyjaśnienie do powyższego kodu: Jeśli są zmuszone do działania, mogą nie dawać żadnych danych wyjściowych lub mogą zwrócić błąd czasu działania, ponieważ domeny prywatne nie podają swoich adresów protokołów internetowych. Chociaż powyższe kody są wykonywane na serwerze lokalnym lub lokalnym, tak jak korzystaliśmy z serwera WAMP, zapewni on dane wyjściowe zgodnie z wersją IP, to znaczy, jeśli jest to IPv4, adres protokołu internetowego będzie wyświetlany jako „127: 0: 0: 1”, podczas gdy jeśli jest to IPv6, adres protokołu internetowego będzie wyświetlany jak wyżej, czyli „:: 1”

Polecane artykuły

Jest to przewodnik po uzyskiwaniu adresu IP w PHP. Tutaj omawiamy Identyfikowanie adresu IP, metody w adresie IP i punkty, które należy zapamiętać w adresie IP. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Połączenie z bazą danych PHP
  2. Co to jest TCP / IP?
  3. Programowanie gniazd w PHP
  4. Palindrom w PHP
  5. Palindrom w C ++
  6. Palindrom w JavaScript
  7. Najlepsze porównanie 12 komputerów Mac i adresów IP
  8. Programowanie gniazd w Pythonie
  9. Co to jest IPv4?