Benutzer-IP-Adresse in PHP abrufen
-
Verwenden Sie
$_SERVER['REMOTE_ADDR']
, um die IP-Adresse des Benutzers in PHP zu finden -
Verwenden Sie
$_SERVER['REMOTE_ADDR']
,$_SERVER['HTTP_CLIENT_IP']
und$_SERVER['HTTP_X_FORWARDED_FOR']
, um die IP-Adresse des Benutzers zu ermitteln -
Verwendung des ternären Operators und der Funktion
isset()
, um die IP-Adresse des Benutzers zu finden
Wir werden eine Möglichkeit vorstellen, von einem Server in PHP aus mit der superglobalen Variablen $_SERVER
auf die IP-Adresse des Benutzers zuzugreifen, wobei REMOTE_ADDR
das einzige Array-Element ist. Es wird als $_SERVER['REMOTE_ADDR']
verwendet.
Wir zeigen eine andere Möglichkeit, mit dem bedingten Ausdruck auf die IP-Adresse des Benutzers in PHP zuzugreifen, um zu überprüfen, ob die IP-Adressen des Benutzers aus dem gemeinsam genutzten Internet, von einem Proxy oder der tatsächlichen IP-Adresse stammen. Diese Methode verwendet Array-Elemente wie HTTP_CLIENT_IP
, HTTP_X_FORWARDED_FOR
und REMOTE_ADDR
.
Wir zeigen Ihnen eine Kurzmethode, um die IP-Adresse des Benutzers in PHP mithilfe des ternären Operators und der Funktion isset()
abzurufen. Diese Methode verwendet auch die Array-Elemente wie HTTP_CLIENT_IP
, HTTP_X_FORWARDED_FOR
und REMOTE_ADDR
in der superglobalen Variablen $_SERVER
.
Verwenden Sie $_SERVER['REMOTE_ADDR']
, um die IP-Adresse des Benutzers in PHP zu finden
Wir können den Ausdruck $_SERVER['REMOTE_ADDR']
verwenden, um die IP-Adresse zu ermitteln, von der aus der Benutzer auf die aktuelle Seite zugreift. $_SERVER
ist die superglobale Variable in PHP und verwendet eine Vielzahl von Array-Elementen als Argumente. Wir verwenden das REMOTE_ADDR
als Array-Element in der Variablen $_SERVER
, um auf die tatsächliche IP-Adresse des Clients zuzugreifen. Beachten Sie, dass $_SERVER['REMOTE_ADDR']
nicht immer in allen Fällen die richtige IP-Adresse des Clients angibt. Wir werden die anderen Fälle unten diskutieren. Stellen Sie sicher, dass Ihre Server-API (SAPI) gut konfiguriert ist, damit der obige Ausdruck die tatsächliche IP der Verbindung zurückgibt.
Im folgenden Beispiel wird der localhost
als Server verwendet. Somit wird die Loopback-IP-Adresse zurückgegeben. Informationen zur Loopback-Adresse finden Sie unter hier. Angenommen, die URL des folgenden PHP-Skripts lautet http://localhost/index.php
. Es gibt die IP-Adresse des lokalen Computers als ::1
aus. ::1
ist die IPv6-Darstellung des localhost
.
Weisen Sie beispielsweise einer Variablen ip_addr
das $_SERVER['REMOTE_ADDR']
zu. Drucken Sie dann die Variable mit dem echo
.
Beispielcode:
# php 7.x
<?php
$ip_add = $_SERVER['REMOTE_ADDR'];
echo "The user's IP address is - ".$ip_add;
?>
Ausgabe:
The user's IP address is - ::1
Verwenden Sie $_SERVER['REMOTE_ADDR']
, $_SERVER['HTTP_CLIENT_IP']
und $_SERVER['HTTP_X_FORWARDED_FOR']
, um die IP-Adresse des Benutzers zu ermitteln
Wir können die Array-Elemente der superglobalen Variablen $_SERVER
wie $_SERVER['REMOTE_ADDR']
, $_SERVER['HTTP_CLIENT_IP']
und $_SERVER['HTTP_X_FORWARDED_FOR']
verwenden, um die IP-Adresse von zu ermitteln der Benutzer in PHP. Verwenden Sie $_SERVER['REMOTE_ADDR']
, um die tatsächliche IP-Adresse des Benutzers zu ermitteln. Verwenden Sie $_SERVER['HTTP_CLIENT_IP']
, um die IP-Adresse zu ermitteln, wenn der Benutzer über das gemeinsam genutzte Internet auf die Seite zugreift. Verwenden Sie $_SERVER['HTTP_X_FORWARDED_FOR']
, um die IP-Adresse zu ermitteln, wenn der Benutzer einen Proxy verwendet, um auf die Webseite zuzugreifen. Beachten Sie, dass Header wie HTTP_X_FORWARDED_FOR
und HTTP_CLIENT_IP
gefälscht werden können, da dies von jedem festgelegt werden kann. Manchmal stellen sie möglicherweise nicht die tatsächliche IP-Adresse des Clients dar.
Verwenden Sie beispielsweise die Funktion empty()
, um zu überprüfen, ob $_SERVER['HTTP_CLIENT_IP']
etwas enthält. Wenn es enthält, weisen Sie das Tal in der Variablen $ip
zu und drucken Sie i.
Führen Sie erneut eine Überprüfung für $_SERVER['HTTP_X_FORWARDED_FOR']
durch, weisen Sie den Wert zu und drucken Sie ihn aus, falls vorhanden. Führen Sie eine ähnliche Operation für $_SERVER['REMOTE_ADDR']
aus.
Im folgenden Beispiel gibt $_SERVER['REMOTE_ADDR']
die IP-Adresse zurück, da der Benutzer keine Proxys oder eine gemeinsame Internetverbindung verwendet. Lesen Sie das PHP Manual, um mehr über das $_SERVER
-Array zu erfahren.
Beispielcode:
#php 7.x
<?php if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
echo $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
echo $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
echo $ip = $_SERVER['REMOTE_ADDR'];
}
?>
Ausgabe:
::1
Verwendung des ternären Operators und der Funktion isset()
, um die IP-Adresse des Benutzers zu finden
Wir können eine Kurzhandmethode verwenden, um die IP-Adresse des Benutzers in PHP mithilfe des ternären Operators zu ermitteln. Bei dieser Methode prüft die Methode isset()
, ob das Array die angegebenen Elemente oder die Header-Dateien enthält.
Verwenden Sie beispielsweise die Funktion isset()
, um zu überprüfen, ob das Array HTTP_CLIENT_IP
enthält. Wenn die Bedingung erfüllt ist, wird HTTP_CLIENT_IP
gesetzt. Wenn die Bedingung fehlschlägt, wird mit der Funktion isset()
geprüft, ob das Array HTTP_X_FORWARDED_FOR
enthält. Wenn die Bedingung erfüllt ist, wird in ähnlicher Weise HTTP_X_FORWARDED_FOR
und REMOTE_ADDR
festgelegt, wenn die Bedingung fehlschlägt.
Im folgenden Beispiel verwendet der Client keinen Proxy oder kein freigegebenes Internet. Daher wird $_SERVER['REMOTE_ADDR']
ausgeführt. Bitte lesen Sie die MSDN Web Docs, um mehr über den ternären Operator zu erfahren.
Beispielcode:
#php 7.x
<?php
$ip = isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
echo "The user IP Address is - ". $ip;
?>
Ausgabe:
The user IP Address is - ::1
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn