import time import requests from settings import (get_connection, key) def process_queries(sql_statement): with get_connection() as conn: with conn.cursor() as cur: cur.execute(sql_statement) res = cur.fetchall() for index, r in enumerate(res): steam_id = r[0] ip = r[1] url = f"https://proxycheck.io/v2/{ip}?key={key}&asn=1" jrequest = requests.get(url).json() d = jrequest[ip] try: asn = d["asn"] provider = d["provider"] country = d["country"] except Exception: print(f'failed: {jrequest}') continue with get_connection() as conn: with conn.cursor() as cur: sql_statement = """ insert ignore into `unloze_anti-spoofing`.connect_restriction (country, asn, provider, steam_id, ipv4) values (%s, %s, %s, %s, %s) """ cur.execute(sql_statement, [country, asn, provider, steam_id, ip]) conn.commit() time.sleep(2.5) print(f'at {index + 1}/{len(res)}') def main(): sql_statement = """ select sb.steam_id, sb.ipv4 from `unloze_anti-spoofing`.sb_bans_shortened sb left outer join `unloze_anti-spoofing`.connect_restriction cr on sb.steam_id = cr.steam_id where cr.asn is null limit 40 """ process_queries(sql_statement) sql_statement = """ select auth, address from `unloze_anti-spoofing`.connections sb left join `unloze_anti-spoofing`.connect_restriction cr on sb.auth = cr.steam_id and sb.address = cr.ipv4 where cr.asn is null and sb.type != 'SteamLegit' ORDER BY RAND() limit 950 """ process_queries(sql_statement) if __name__ == '__main__': main()