Class: IPIPX::IPv4DatabaseX

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

Overview

Database for search IPv4 address.

The IPIP.net data file(ipip.datx) format in bytes::

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

Constant Summary collapse

OFFSET_NUMBER_SIZE =
4
FIRST_IP_NUMBER_INDEX_SIZE =
256 * 1024
IP_BLOCK_SIZE =
9

Instance Method Summary collapse

Constructor Details

#initialize(data_file) ⇒ IPv4DatabaseX

Returns a new instance of IPv4DatabaseX.



26
27
28
# File 'lib/ipip/ipv4_database_x.rb', line 26

def initialize(data_file)
  @data_file = data_file
end

Instance Method Details

#find(ip) ⇒ Object



30
31
32
33
# File 'lib/ipip/ipv4_database_x.rb', line 30

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