Sha256: 3c5983283c21583e6cae3fd8ce923a85379747619af5ade90c8d922b3ba90789

Contents?: true

Size: 612 Bytes

Versions: 35

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

35 entries across 35 versions & 1 rubygems

Version Path
rollbar-3.6.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.5.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.5.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.5.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.4.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.4.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.4.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.3.3 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.3.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.3.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.3.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.2.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.1.2 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.1.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.1.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.0.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-3.0.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.27.1 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.27.0 lib/rollbar/util/ip_obfuscator.rb
rollbar-2.26.1 lib/rollbar/util/ip_obfuscator.rb