geoip.lua

changeset 16
d35376a53644
child 19
fd7b581560d5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/geoip.lua	Mon Jan 04 16:27:00 2016 +0000
@@ -0,0 +1,24 @@
+pcall(function ()
+	local city_db_path = os.getenv("GEOIP_CITY_DB");
+	if not city_db_path then return; end
+	
+	local city_db = assert(require "geoip.city".open(city_db_path));
+	
+	events.add_handler("new-client", function (info)
+		local ip = info.conn:ip();
+		local location = city_db:query_by_addr(ip);
+		if location then
+			local l = {};
+			if location.city_name then
+				table.insert(l, location.city_name);
+			end
+			if location.region then
+				table.insert(l, location.region);
+			end
+			if location.country_name then
+				table.insert(l, location.country_name);
+			end
+			conn.location = table.concat(l, ", ");
+		end
+	end);
+end)

mercurial