llms_get_ip_address()

Retrieve an IP Address for the current user


Return Return

(string)


Top ↑

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;


Top ↑

Changelog Changelog

Changelog
Version Description
3.35.0 Sanitize superglobal input.
3.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.