geoip.lua

Mon, 04 Jan 2016 16:27:00 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 04 Jan 2016 16:27:00 +0000
changeset 16
d35376a53644
child 19
fd7b581560d5
permissions
-rw-r--r--

main, geoip: Add GeoIP lookup support for watcher info

16
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 pcall(function ()
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local city_db_path = os.getenv("GEOIP_CITY_DB");
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 if not city_db_path then return; end
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local city_db = assert(require "geoip.city".open(city_db_path));
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 events.add_handler("new-client", function (info)
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local ip = info.conn:ip();
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local location = city_db:query_by_addr(ip);
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 if location then
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local l = {};
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 if location.city_name then
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 table.insert(l, location.city_name);
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 end
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 if location.region then
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 table.insert(l, location.region);
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 if location.country_name then
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 table.insert(l, location.country_name);
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 conn.location = table.concat(l, ", ");
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 end
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 end);
d35376a53644 main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 end)

mercurial