The Scenario
Your security team landed a fresh export of 3,500 flagged login-attempt IPs into Google Sheets an hour ago. You need country, city, ISP, and proxy/VPN flag for every one of them before the threat-review call at 3 PM. The sheet is just a column of raw addresses — no enrichment, no context, nothing useful yet.
The bad version:
- Paste the first 1,000 IPs into the IP2Location web tool, download the CSV, open it, match the columns, paste the results back next to the source rows in the sheet, then repeat three more times.
- Discover that the CSV columns don't line up with your sheet headers, spend fifteen minutes renaming and rearranging, realize you've introduced a row offset somewhere in batch two, and spend another twenty minutes hunting the mismatch.
- Send a draft to the team marked "enrichment in progress" because you ran out of time.
A threat-review meeting with "enrichment in progress" in the header is not a great look when the stakeholders asking questions are the CISO and the head of risk.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads your column of IP addresses and through its built-in IP2Location integration it calls the bulk lookup API, batches the requests automatically, and writes the results back into the right columns. No download, no paste, no column-matching.
For each IP address in column A, call IP2Location bulk lookup to retrieve country, region, city, ISP, and proxy status, then write the results to columns B through F.
What You Get
- Column B: country name (e.g., "Russia", "United States")
- Column C: region or state
- Column D: city
- Column E: ISP or organization name
- Column F: proxy status — VPN, Tor, web proxy, or none
- Rows where IP2Location returns no data get a "not found" marker so you can spot gaps immediately
What If the Data Is Not Quite Ready
The IPs have leading/trailing whitespace from the export
Before enriching, trim all values in column A so there are no leading or trailing spaces, then run IP2Location bulk lookup and write country, region, city, ISP, and proxy status to columns B through F.
Some rows have hostnames instead of IPs
Check column A for any values that look like domain names rather than IP addresses — write those to a "Needs Resolution" sheet in column A with the row number in column B, then enrich only the valid IPs in place.
I need to join the enriched data against an allow-list on a second tab
After enriching the IPs in column A with country codes in column B using IP2Location, compare each country code against the approved list in the "Allowed Regions" tab column A and write PASS or FAIL in column G.
Full kill chain — clean, enrich, flag, and summarize in one shot
Trim column A, enrich each IP with IP2Location bulk lookup writing country, region, city, ISP, and proxy status to columns B through F, flag any row where column F is not "none" or column B is not in the "Allowed Regions" tab with REVIEW in column G, then add a summary table below the data showing flagged count by proxy type.
The trick is packing the cleanup, enrichment, flagging, and summary into a single ask — SheetXAI executes the whole chain without you managing the steps.
Try It
Get the 7-day free trial of SheetXAI and open any sheet with a column of login or transaction IPs, then ask it to enrich them with IP2Location country, city, ISP, and proxy data. You can also see how this works for mapping visitor traffic to regions or return to the IP2Location overview to compare all the ways SheetXAI works with this integration.
