I can tell you the 3D arrow was implemented in 0.4.7.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menummdb <- MMDB("GeoLite2-City.mmdb");
print(JSONEncoder.encode(mmdb.metadata()));
print(JSONEncoder.encode(mmdb.get("128.101.101.101")));
You can use JSONEncoder to dump tables to string.[SCRIPT] {"description":{"en":"GeoLite2 City database"},"binary_format_major_version":2,"ip_version":6,"build_epoch":["UINT64",0,1554724656],"node_count":3854641,"languages":["de","en","es","fr","ja","pt-BR","ru","zh-CN"],"database_type":"GeoLite2-City","binary_format_minor_version":0,"record_size":28}
[SCRIPT] {"subdivisions":[{"names":{"en":"Minnesota","ru":"Миннесота","ja":"ミネソタ州","zh-CN":"明尼苏达州","
es":"Minnesota","pt-BR":"Minesota","fr":"Minnesota"},"geoname_id":5037779,"iso_code":"MN"}],"continent":{"names":{"en":"North America","ru":"Северная Америка","ja":"北アメリカ","zh-CN":"北美洲","de":"Nordamerika","es":"Nortea
mérica","pt-BR":"América do Norte","fr":"Amérique du Nord"},"geoname_id":6255149,"code":"NA"},"country":{"names":{"en":"United States","ru":"США","ja":"アメリカ合衆国","zh-CN":"美国","de":"USA","es":"Estados Unidos","pt-BR":"Estados Unid
os","fr":"États-Unis"},"geoname_id":6252001,"iso_code":"US"},"postal":{"code":"55110"},"city":{"names":{"en":"Saint Paul","ru":"Сент-Пол","ja":"セントポール","zh-CN":"圣保罗","de":"Saint Paul","es":"Saint Paul","pt-BR":"Saint Paul","
fr":"Saint Paul"},"geoname_id":5045360},"registered_country":{"names":{"en":"United States","ru":"США","ja":"アメリカ
合衆国","zh-CN":"美国","de":"USA","es":"Estados Unidos","pt-BR":"Estados Unidos","fr":"États-Unis"},"geoname_id":6252001
,"iso_code":"US"},"location":{"latitude":45.08,"metro_code":613,"longitude":-93.0227,"time_zone":"America\/Chicago","accuracy_radius":20}
function geoip2_country_code_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.country.iso_code;
}
catch(e) {}
return res;
}
function geoip2_country_name_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.country.names.en;
}
catch(e) {}
return res;
}
function geoip2_city_name_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.city.names.en;
}
catch(e) {}
return res;
}
function geoip2_subdivision_code_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.subdivisions[0].iso_code;
}
catch(e) {}
return res;
}
function geoip2_subdivision_name_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.subdivisions[0].names.en;
}
catch(e) {}
return res;
}
function geoip2_continent_code_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.continent.code;
}
catch(e) {}
return res;
}
function geoip2_continent_name_by_addr(ip_address)
{
local data = mmdb.get(ip_address);
local res = null;
try
{
res = data.continent.names.en;
}
catch(e) {}
return res;
}
Usage:mmdb <- MMDB("GeoLite2-City.mmdb");
local ip = "128.101.101.101";
print(geoip2_country_code_by_addr(ip));
print(geoip2_country_name_by_addr(ip));
print(geoip2_city_name_by_addr(ip));
print(geoip2_subdivision_code_by_addr(ip));
print(geoip2_subdivision_name_by_addr(ip));
print(geoip2_continent_code_by_addr(ip));
print(geoip2_continent_name_by_addr(ip));
Example output:[SCRIPT] US
[SCRIPT] United States
[SCRIPT] Saint Paul
[SCRIPT] MN
[SCRIPT] Minnesota
[SCRIPT] NA
[SCRIPT] North America
[/spoiler]