net.i2p.router.transport

## Class GeoIP

- java.lang.Object
- - net.i2p.router.transport.GeoIP

-      class GeoIP
      extends Object

  Manage geoip lookup in a file with the Tor geoip format. The lookup is expensive, so a lookup is queued with add(). The actual lookup of multiple IPs is fired with lookup(). To get a country for an IP, use get() which returns a lower-case, generally two-letter country code or null. Everything here uses longs, since Java is signed-only, the file is sorted by unsigned, and we don't store the table in memory (unlike in Blocklist.java, where it's in-memory so we want to be space-efficient)
  Author:
    zzz

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static String` | `COUNTRY_FILE_DEFAULT`
    `(package private) static String` | `GEOIP_DIR_DEFAULT`
    `(package private) static String` | `GEOIP_FILE_DEFAULT`
    `(package private) static String` | `PROP_GEOIP_ENABLED`
    `static String` | `PROP_IP_COUNTRY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GeoIP(RouterContext context)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(byte[] ip)`
    `void` | `add(String ip)` Add to the list needing lookup
    `void` | `blockingLookup()` Blocking lookup of all pending IPs.
    `String` | `fullName(String code)`
    `String` | `get(byte[] ip)`
    `String` | `get(String ip)` Get the country for an IP

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### PROP_GEOIP_ENABLED

          static final String PROP_GEOIP_ENABLED

      See Also:
        Constant Field Values

    - #### GEOIP_DIR_DEFAULT

          static final String GEOIP_DIR_DEFAULT

      See Also:
        Constant Field Values

    - #### GEOIP_FILE_DEFAULT

          static final String GEOIP_FILE_DEFAULT

      See Also:
        Constant Field Values

    - #### COUNTRY_FILE_DEFAULT

          static final String COUNTRY_FILE_DEFAULT

      See Also:
        Constant Field Values

    - #### PROP_IP_COUNTRY

          public static final String PROP_IP_COUNTRY

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GeoIP

          public GeoIP(RouterContext context)

  - ### Method Detail

    - #### blockingLookup

          public void blockingLookup()

      Blocking lookup of all pending IPs. Results will be added to the table and available via get() after completion.

    - #### add

          public void add(String ip)

      Add to the list needing lookup

    - #### add

          public void add(byte[] ip)

    - #### get

          public String get(String ip)

      Get the country for an IP
      Returns:
        lower-case code, generally two letters.

    - #### get

          public String get(byte[] ip)

    - #### fullName

          public String fullName(String code)