import requests, uuid
GATE = "gate.aeonproxy.com:7000"
# Country key only. APNIC lists Orange Bissau (AS37559) among Senegalese networks,
# yet its addresses mostly look up as "Bissau, GW": the country check drops them.
BRAND = {"AS8346": "Orange (Sonatel)", "AS37649": "Yas", "AS37196": "Expresso"}
def senegal_exit(brand=None, tries=8):
for _ in range(tries):
sid = uuid.uuid4().hex[:8]
proxy = f"http://ap_a1b2c3-cc-sn-sid-{sid}-time-1800:PASS@{GATE}"
try:
geo = requests.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=20).json()
except requests.RequestException:
continue # no reply: start another session
if geo.get("country") != "SN":
continue # e.g. an AS37559 address placed in GW
asn = geo.get("org", "").split(" ")[0]
name = BRAND.get(asn, geo.get("org"))
if brand is None or name == brand:
return proxy, geo, name # kept for 30 minutes
return None, None, None
proxy, geo, name = senegal_exit("Yas")
if proxy:
print(geo["ip"], geo.get("city"), geo.get("region"), name)
# Yas prints as "AS37649 SAGA AFRICA HOLDINGS LIMITED"; regions as "Dakar", "Thies", "Diourbel Region"
Pass "Expresso" or None instead of "Yas" as needed. -time- takes 60 to 21600 seconds, and a login without -sid- moves to a new exit on every request.