Class: Mmdb::DB
- Inherits:
-
Object
- Object
- Mmdb::DB
- Defined in:
- lib/mmdb/db.rb
Defined Under Namespace
Classes: InvalidFileFormat
Instance Method Summary collapse
-
#initialize(file_path) ⇒ DB
constructor
A new instance of DB.
- #query(ip_addr) ⇒ Object
Constructor Details
#initialize(file_path) ⇒ DB
Returns a new instance of DB.
5 6 7 |
# File 'lib/mmdb/db.rb', line 5 def initialize(file_path) @file_path = file_path end |
Instance Method Details
#query(ip_addr) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/mmdb/db.rb', line 9 def query(ip_addr) validate_database! node = 0 (decoder.start_index...128).each do |i| flag = (ip_addr >> (127 - i)) & 1 next_node = decoder.read(node: node, flag: flag) raise InvalidFileFormat if next_node.zero? if next_node < decoder.node_count node = next_node else return decode_node(next_node).value end end raise InvalidFileFormat end |