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 * 1024 bytes               |             <- first ip number index
   ----------------------------------
   | offset - 256 * 1024 - 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.



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

def initialize(data_file)
  @data_file = data_file
end

Instance Method Details

#find(ip) ⇒ Object



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

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