## 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
`(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
`GeoIP(RouterContext context)`

Method Summary
`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)