Skip to content

Instantly share code, notes, and snippets.

@kn1cht
Created June 11, 2025 14:46
Show Gist options
  • Select an option

  • Save kn1cht/1ee8ae9f2d7d810dafe3e2c4d39d172e to your computer and use it in GitHub Desktop.

Select an option

Save kn1cht/1ee8ae9f2d7d810dafe3e2c4d39d172e to your computer and use it in GitHub Desktop.

Revisions

  1. kn1cht created this gist Jun 11, 2025.
    45 changes: 45 additions & 0 deletions solve_louvre.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    import pandas as pd
    import requests
    import time
    from getpass import getpass
    from mac_vendor_lookup import MacLookup # pip install mac-vendor-lookup

    def send_request():
    token = getpass("Enter your WiGLE API token (Authorization: Basic <token>): ")
    headers = {"Authorization": f"Basic {token}"}
    query_params = {
    "ssidlike": "%Louvre_WiFi_Gratuit",
    "lasttime": "20250228",
    "lat_range_1": 48.86,
    "lat_range_2": 48.8625,
    "long_range_1": 2.3326,
    "long_range_2": 2.34,
    "resultsperpage": 100,
    }
    result_count = 0
    total_count = 0
    result_df = pd.DataFrame()
    while result_count < total_count or result_count == 0:
    res = requests.get("https://api.wigle.net/api/v2/network/search", params=query_params, headers=headers)
    if res.status_code == 200:
    data = res.json()
    results = data["results"]
    total_count = data["totalResults"]
    result_count += len(results)
    print(f"{result_count} / {total_count}")
    df = pd.DataFrame(results)
    df = df[df["lasttime"].str.contains("2025-02-28")]
    result_df = pd.concat([result_df, df])
    query_params["searchAfter"] = data["searchAfter"]
    time.sleep(1)
    else:
    print(f"Error {res.status_code}")
    break

    bssids = result_df[["netid", "ssid"]].drop_duplicates()
    for _, row in bssids.iterrows():
    vendor_text = MacLookup().lookup(row["netid"])
    print(f"SSID: {row['ssid']}, BSSID: {row['netid']}, Vendor: {vendor_text}")

    if __name__ == "__main__":
    send_request()