llms_get_ip_address()
Retrieve an IP Address for the current user
Return Return
(string)
Source Source
File: includes/llms.functions.core.php
*/
function llms_get_ip_address() {
$ip = '';
// phpcs:disable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Look below you.
// phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash -- Look below you.
if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
} elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
// Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2.
// Make sure we always only send through the first IP in the list which should always be the client IP.
$ip = trim( current( explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) );
} elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// phpcs:enable WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
// phpcs:enable WordPress.Security.ValidatedSanitizedInput.MissingUnslash
$ip = sanitize_text_field( wp_unslash( $ip ) );
if ( ! filter_var( $ip, FILTER_VALIDATE_IP ) ) {
return '';
}
return $ip;
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 3.35.0 | Sanitize superglobal input. |
| 3.0.0 | Introduced. |