Package net.i2p.router.transport
Class GeoIP
- java.lang.Object
-
- net.i2p.router.transport.GeoIP
-
public 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 Description (package private) static String
COUNTRY_FILE_DEFAULT
static String
GEOIP_DIR_DEFAULT
(package private) static String
GEOIP_FILE_DEFAULT
static String
PROP_DEBIAN_GEOIP
static String
PROP_DEBIAN_GEOIPV6
static String
PROP_GEOIP_DIR
(package private) static String
PROP_GEOIP_ENABLED
static String
PROP_IP_COUNTRY
-
Constructor Summary
Constructors Constructor Description GeoIP(I2PAppContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(byte[] ip)
Add to the list needing lookupvoid
add(String ip)
Add to the list needing lookupvoid
blockingLookup()
Blocking lookup of all pending IPs.String
fullName(String code)
Get the country for a country codeString
get(byte[] ip)
Get the country for an IP from the cache.String
get(String ip)
Get the country for an IP from the cache.void
shutdown()
-
-
-
Field Detail
-
PROP_GEOIP_ENABLED
static final String PROP_GEOIP_ENABLED
- See Also:
- Constant Field Values
-
PROP_GEOIP_DIR
public static final String PROP_GEOIP_DIR
- See Also:
- Constant Field Values
-
GEOIP_DIR_DEFAULT
public 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
-
PROP_DEBIAN_GEOIP
public static final String PROP_DEBIAN_GEOIP
- See Also:
- Constant Field Values
-
PROP_DEBIAN_GEOIPV6
public static final String PROP_DEBIAN_GEOIPV6
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GeoIP
public GeoIP(I2PAppContext context)
- Parameters:
context
- RouterContext in production, I2PAppContext for testing only
-
-
Method Detail
-
shutdown
public void shutdown()
- Since:
- 0.9.3
-
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- Parameters:
ip
- IPv4 or IPv6
-
add
public void add(byte[] ip)
Add to the list needing lookup- Parameters:
ip
- IPv4 or IPv6
-
get
public String get(String ip)
Get the country for an IP from the cache.- Parameters:
ip
- IPv4 or IPv6- Returns:
- lower-case code, generally two letters, or null.
-
get
public String get(byte[] ip)
Get the country for an IP from the cache.- Parameters:
ip
- IPv4 or IPv6- Returns:
- lower-case code, generally two letters, or null.
-
-