update to new geoip lib, fix the whole thing, remove the format parameter
This commit is contained in:
parent
f7be02bf0a
commit
cd763f3930
BIN
GeoLiteCity.dat
Normal file
BIN
GeoLiteCity.dat
Normal file
Binary file not shown.
40
ip.py
40
ip.py
@ -1,15 +1,12 @@
|
||||
#!/usr/bin/env python
|
||||
import cgi
|
||||
import os
|
||||
#import html
|
||||
|
||||
F_PLAIN = 0
|
||||
F_XML = 1
|
||||
F_JSON = 2
|
||||
import pygeoip
|
||||
|
||||
def header():
|
||||
print("Content-type: text/plain")
|
||||
print("")
|
||||
|
||||
def main():
|
||||
params = cgi.FieldStorage()
|
||||
out = {
|
||||
@ -19,33 +16,16 @@ def main():
|
||||
"location": None
|
||||
}
|
||||
header()
|
||||
out["ip"] = cgi.escape(os.environ["REMOTE_ADDR"])
|
||||
client_ip = cgi.escape(os.environ["REMOTE_ADDR"])
|
||||
format = F_PLAIN
|
||||
if(len(params) > 0):
|
||||
for key in params:
|
||||
if key == "format":
|
||||
r_format = params[key].value
|
||||
if r_format == "xml":
|
||||
print("lol xml are you serious? get with the times")
|
||||
elif r_format == "json":
|
||||
format = F_JSON
|
||||
elif key == "and":
|
||||
extras = params[key].value.split(',')
|
||||
if "geo" in extras:
|
||||
from geoip import geolite2
|
||||
match = geolite2.lookup(out["ip"].encode("UTF-8"))
|
||||
if match is not None:
|
||||
out["country"] = match.country
|
||||
out["continent"] = match.continent
|
||||
out["location"] = match.location
|
||||
if key == "geo":
|
||||
gi = pygeoip.GeoIP('GeoLiteCity.dat')
|
||||
geo_info = gi.record_by_addr(ip)
|
||||
print(geo_info)
|
||||
else:
|
||||
print(client_ip)
|
||||
|
||||
|
||||
if format == F_PLAIN:
|
||||
for item in out:
|
||||
if out[item] is not None:
|
||||
print(out[item])
|
||||
elif format == F_JSON:
|
||||
import json
|
||||
print(json.dumps(dict((k, v) for k, v in out.items() if v is not None)))
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
||||
pygeoip
|
Loading…
Reference in New Issue
Block a user