63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- This is a proprietary plugin, property of Andreas Bielawski, (c) 2015 <andi (dot) b (at) outlook (dot) de>
 | |
| -- DO NOT USE WITHOUT PERMISSION
 | |
| 
 | |
| do
 | |
| 
 | |
| local BASE_URL = 'http://ipinfo.io'
 | |
| 
 | |
| function get_ip_data (ip)
 | |
|   local url = BASE_URL..'/'..ip..'/json'
 | |
|   local res,code  = http.request(url)
 | |
|   if code == 404 then return "Diese IP gibt es nicht!" end
 | |
|   if code ~= 200 then return "HTTP-FEHLER: "..code end
 | |
|   local data = json:decode(res)
 | |
| 
 | |
|   if data.hostname == "No Hostname" then
 | |
| 	hostname = ""
 | |
|   else
 | |
|     hostname = ' ('..data.hostname..')'
 | |
|   end
 | |
|   
 | |
|   if data.org then
 | |
|     org = data.org
 | |
|   else
 | |
|     org = 'Unbekannt'
 | |
|   end
 | |
|   
 | |
|   
 | |
|   if data.city == "" or data.city == nil then
 | |
| 	city = "Unbekannt"
 | |
|   else
 | |
|     city = data.city
 | |
|   end
 | |
|   
 | |
|  local country = data.country
 | |
|  
 | |
|   if data.region == "" or data.region == nil then
 | |
| 	region = ""
 | |
|   else
 | |
|     region = ', '..data.region
 | |
|   end
 | |
|   
 | |
|   if data.postal then
 | |
|     postal = ' (PLZ: '..data.postal..')'
 | |
|   else
 | |
|     postal = ''
 | |
|   end
 | |
|     local text = 'Der Server von '..ip..' gehört zu '..org..hostname..' und steht in '..country..', genauer in '..city..region..postal
 | |
|   return text
 | |
| end
 | |
| 
 | |
| function run(msg, matches)
 | |
|   local ip = matches[1]
 | |
|   return get_ip_data(ip)
 | |
| end
 | |
| 
 | |
| return {
 | |
|   description = "Sendet IP-Info", 
 | |
|   usage = "/ip [IP]: Sendet Server-Infos",
 | |
|   patterns = {"^/ip (.*)$"},
 | |
|   run = run 
 | |
| }
 | |
| 
 | |
| end |