Compare commits

...

2 commits

Author SHA1 Message Date
0ebd1abdd7
Bug Fix 2024-08-21 12:15:48 +01:00
512f94d7f6
Updated geoip to check history before doing lookup 2024-08-21 11:54:10 +01:00

58
log.py
View file

@ -108,33 +108,58 @@ class logsManager:
try:
if 'delayUntil' in locals() and datetime.now() < delayUntil:
conn = pyodbc.connect(self.conn_str)
cursor = conn.cursor()
timeThreshold = datetime.now() - timedelta(days=1)
print("Rate limit exceeded. Please wait before trying again.")
return None
cursor.execute("SELECT blockedipaddress, monutil_geoip.hostname, city, region, country, loc, org, postal, timezone FROM monutil_geoip INNER JOIN monutil_ipblock ON monutil_geoip.logID = monutil_ipblock.logID WHERE logtime >= ? AND blockedipaddress = ?", timeThreshold, ip)
url = f"https://ipinfo.io/{ip}?token={token}"
rows = cursor.fetchall()
response = requests.get(url)
response.raise_for_status()
data = response.json()
geoinfo = []
if response.status_code == 429:
for row in rows:
geoinfo = {
"ip": row.blockedipaddress,
"hostname": row.hostname,
"city": row.city,
"region": row.region,
"country": row.country,
"loc": row.loc,
"org": row.org,
"postal": row.postal,
"timezone": row.timezone,
}
print("Rate limit exceeded. Please wait before trying again.")
today = datetime.now()
if not geoinfo:
if today.month == 12:
if 'delayUntil' in locals() and datetime.now() < delayUntil:
delayUntil = datetime(today.year + 1, 1, 1)
print("Rate limit exceeded. Please wait before trying again.")
return None
else:
url = f"https://ipinfo.io/{ip}?token={token}"
delayUntil = datetime(today.year, today.month + 1, 1)
response = requests.get(url)
response.raise_for_status()
data = response.json()
return None
if response.status_code == 429:
geoinfo = {
print("Rate limit exceeded. Please wait before trying again.")
today = datetime.now()
if today.month == 12:
delayUntil = datetime(today.year + 1, 1, 1)
else:
delayUntil = datetime(today.year, today.month + 1, 1)
return None
geoinfo = {
"ip": data.get("ip"),
"hostname": data.get("hostname"),
"city": data.get("city"),
@ -146,7 +171,6 @@ class logsManager:
"timezone": data.get("timezone"),
}
return geoinfo
except Exception as e: