module IpAnonymizer
Constants
- VERSION
Public Class Methods
hash_ip(ip, key:, iterations: 1)
click to toggle source
# File lib/ip_anonymizer.rb, line 20 def self.hash_ip(ip, key:, iterations: 1) addr = IPAddr.new(ip.to_s) key_len = addr.ipv4? ? 4 : 16 family = addr.ipv4? ? Socket::AF_INET : Socket::AF_INET6 keyed_hash = OpenSSL::PKCS5.pbkdf2_hmac(addr.to_s, key, iterations, key_len, "sha256") IPAddr.new(keyed_hash.bytes.inject {|a, b| (a << 8) + b }, family).to_s end
mask_ip(ip)
click to toggle source
# File lib/ip_anonymizer.rb, line 9 def self.mask_ip(ip) addr = IPAddr.new(ip.to_s) if addr.ipv4? # set last octet to 0 addr.mask(24).to_s else # set last 80 bits to zeros addr.mask(48).to_s end end