Class: IPIP::IPv4Database

Inherits:
Object
  • Object
show all
Defined in:
lib/ipip/ipv4_database.rb

Overview

Database for search IPv4 address.

The IPIP.net data file(17monipdb.dat) format in bytes::

   ---------------------------
   | 4 bytes                 |             <- offset number
   ---------------------------
   | 256 * 4 bytes           |             <- first ip number index
   ---------------------------
   | offset - 1024 - 4 bytes |             <- ip index
   ---------------------------
   |    data  storage        |
   ---------------------------

Constant Summary collapse

OFFSET_NUMBER_SIZE =
4
FIRST_IP_NUMBER_INDEX_SIZE =
256 * 4
IP_BLOCK_SIZE =
8
DEFAULT_DATA_FILE =
File.expand_path("../17monipdb.dat", __FILE__)

Instance Method Summary collapse

Constructor Details

#initialize(data_file = nil) ⇒ IPv4Database

Returns a new instance of IPv4Database.



27
28
29
# File 'lib/ipip/ipv4_database.rb', line 27

def initialize(data_file = nil)
  @data_file = data_file || DEFAULT_DATA_FILE
end

Instance Method Details

#find(ip) ⇒ Object



31
32
33
34
# File 'lib/ipip/ipv4_database.rb', line 31

def find(ip)
  ip = IPSocket::getaddress(ip)
  lookup_ipv4(ip)
end