• Hi, I have a problem with cloudflare and the plugin, the IP addresses that the plugin blocks are those of cloudflare and not those of the client user. What is the cause of that?

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter anamferreira

    (@anamferreira)

    Plugin Author iSaumya

    (@isaumya)

    Cause that’s what present in the server header when using Cloudflare.

    Check the visitor_ip() function

    public function visitor_ip() {
      $ipArr = array();
    
      foreach ( array( 'HTTP_CF_CONNECTING_IP', 'HTTP_X_ORIGINATING_IP', 'HTTP_X_REMOTE_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ) as $key ) {
        if ( array_key_exists( $key, $_SERVER ) === true ) {
          foreach ( explode( ',', $_SERVER[$key] ) as $ip ) {
            $ip = trim( $ip ); // just to be safe
    
            if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) !== false ) {
              array_push($ipArr, $ip);
              //return $ip;
            }
          }
        }
      }
    
      $currentIP = '';
      $actualIP = '';
    
      foreach ($ipArr as $ip) {
        if($ip !== $_SERVER['SERVER_ADDR']) {
          if($currentIP !== $ip) {
            $currentIP = $ip;
            $actualIP = $ip;
          } 
        }
      }
    
      return $actualIP;
    }
    
Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Cloudflare problem’ is closed to new replies.