Sha256: 3c5983283c21583e6cae3fd8ce923a85379747619af5ade90c8d922b3ba90789

Contents?: true

Size: 612 Bytes

Versions: 36

Compression:

Stored size: 612 Bytes

Contents

module Rollbar
  module Util
    module IPObfuscator
      require 'ipaddr'
      require 'digest'

      def self.obfuscate_ip(ip_string)
        return ip_string unless Rollbar.configuration.user_ip_obfuscator_secret

        secret = Rollbar.configuration.user_ip_obfuscator_secret
        ip_int32 = IPAddr.new(ip_string, Socket::AF_INET).to_i
        secret_int32 = Digest::MD5.hexdigest(secret)[0..7].to_i(16)
        obfuscated_ip_int32 = ip_int32 ^ secret_int32 % (2 << 31)

        IPAddr.new(obfuscated_ip_int32, Socket::AF_INET).to_s
      rescue StandardError
        nil
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
rollbar-2.26.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.26.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.25.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.25.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.24.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.23.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.23.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.23.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.22.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.22.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.21.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.20.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.20.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.20.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.19.4 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.19.3 lib/rollbar/util/ip_obfuscator.rb