Sha256: c62c606e607a539180a8ebe22df508712bbca44ff69d65e26f6c339059902c66

Contents?: true

Size: 746 Bytes

Versions: 24

Compression:

Stored size: 746 Bytes

Contents

module Rollbar
  module Util
    module IPAnonymizer
      require 'ipaddr'

      def self.anonymize_ip(ip_string)
        return ip_string unless Rollbar.configuration.anonymize_user_ip

        ip = IPAddr.new(ip_string)
        return anonymize_ipv6 ip if ip.ipv6?
        return anonymize_ipv4 ip if ip.ipv4?
      rescue StandardError
        nil
      end

      def self.anonymize_ipv4(ip)
        ip_parts = ip.to_s.split '.'

        ip_parts[ip_parts.count - 1] = '0'

        IPAddr.new(ip_parts.join('.')).to_s
      end

      def self.anonymize_ipv6(ip)
        ip_parts = ip.to_s.split ':'

        ip_string = ip_parts[0..2].join(':') + ':0000:0000:0000:0000:0000'

        IPAddr.new(ip_string).to_s
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
rollbar-3.2.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-3.1.2 lib/rollbar/util/ip_anonymizer.rb
rollbar-3.1.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-3.1.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-3.0.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-3.0.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.27.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.27.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.26.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.26.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.25.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.25.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.24.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.23.2 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.23.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.23.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.22.1 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.22.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.21.0 lib/rollbar/util/ip_anonymizer.rb
rollbar-2.20.2 lib/rollbar/util/ip_anonymizer.rb