llms_get_ip_address()
Retrieve an IP Address for the current user
Return Return
(string)
Source Source
File: includes/llms.functions.core.php
812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 | */ 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. |