Att kopiera in ett IP i fem olika verktyg bara för att ta reda på ”var kommer det här ifrån?” blir snabbt tröttsamt. Ännu värre: du slutar med halvt ifyllda kalkylark, fält som inte matchar och en lång rad ”jag fixar det senare”-anteckningar.
Marketing ops-team som rensar formulärinskick, byråägare som gör bedrägeritriage åt kunder och små IT-team som spårar märkliga inloggningsspikar hamnar alla i samma röra. Den här IP-intelligens-automationen förvandlar ett enda IP i Google Sheets till en komplett rad (geo, ISP/organisation och vanliga kontroller av HTTP-portar) på ett par minuter.
Du får se vad workflowet gör, hur det flyttar data från Sheets till ip-api.com och tillbaka, och vad du kan justera så att det passar din process i stället för att tvinga fram en ny.
Så fungerar den här automationen
Se hur detta löser problemet:
n8n Workflow Template: Google Sheets + ip-api.com: IP-data ifyllt snabbt
flowchart LR
subgraph sg0["Google Sheets Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Google Sheets Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Update_IP_Info_row", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Update_HTTP_Ports_State", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>CheckHttpPort"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>PutAll_in_OneItem"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>GetIP_Info"]
n2 --> n5
n7 --> n1
n3 --> n2
n5 --> n6
n6 --> n4
n1 --> n3
n0 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1,n4 database
class n5,n7 api
class n6 code
classDef customIcon fill:none,stroke:none
class n5,n6,n7 customIcon
Utmaningen: IP-uppslag och portkontroller saktar ner triage
IP-triage låter enkelt tills du gör det hela dagen. Någon lägger in ett misstänkt IP i ett kalkylark, och sedan hoppar du mellan en geo-uppslagssajt, ett anteckningsdokument och en snabb kontroll av ”lyssnar något ens på 80/443?”. Under tiden förblir arket som ska vara din ”single source of truth” ofullständigt, eftersom de manuella stegen inte görs konsekvent. Även när du gör allt rätt tappar du tid på flikbyten, copy-paste-formatering och att rätta små misstag som först syns senare (som att lat/long hamnar omkastat, eller att ett ISP-namn klistras in i fel kolumn).
Det växer snabbt. Här är var det brister i verkliga team.
- Du kan lägga cirka 5 minuter per IP bara på att få in grundläggande plats- och ISP-kontekst i arket.
- Portkontroller hoppas ofta över, vilket gör att du missar uppenbara signaler som ”den här hosten serverar HTTP just nu”.
- Manuellt copy-paste skapar stökiga rader som inte går att filtrera tillförlitligt när du behöver sortera på land, org eller risk.
- Det finns inget konsekvent arbetsflöde, så två personer som utreder samma IP loggar olika detaljer.
Lösningen: berika varje ny IP-rad och skriv tillbaka resultat automatiskt
Det här workflowet bevakar ditt Google Sheet efter nya rader som innehåller en IP-adress. Så fort ett IP dyker upp skickar det värdet till ip-api.com, hämtar tillbaka geolokalisering och uppgifter om nätverksägare och uppdaterar samma rad med fält som land, stad, latitud/longitud, ISP och organisation. Därefter växlar det direkt till ”är något nåbart?”-läge. Det bygger en liten lista med vanliga webbportar och provar var och en, och fångar om porten svarar eller misslyckas. Till sist sammanställer det resultaten och skriver dem i dedikerade kolumner Port_80 / Port_443 / Port_8000 / Port_8080 / Port_3000, så att ditt ark blir en faktisk inteltabell i stället för en kladdlapp.
Workflowet börjar med en radlyssnare i Sheets. Därefter berikar HTTP-förfrågningar IP:t och provar vanliga portar, och sedan uppdaterar n8n den ursprungliga kalkylarksraden med strukturerade kolumner som du kan filtrera och dela.
Vad som ändras: före vs. efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du loggar 20 misstänkta IP per dag från formulärspam, misslyckade inloggningar eller kvalitetskontroller av annonstrafik. Manuellt kanske du lägger cirka 5 minuter per IP på ett geo-uppslag plus ytterligare 3 minuter på att kontrollera fem vanliga portar, vilket blir ungefär 3 timmar per dag. Med det här workflowet klistrar du in IP:t en gång och arket fyller sig självt, oftast inom ett par minuter. Hands-on-tiden blir en snabb granskning, så du får tillbaka cirka 2 timmar en stressig dag.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för IP-intag och rapporttabell.
- ip-api.com för att returnera geo-, ISP- och org-data.
- Google Sheets-autentiseringsuppgifter (skapa i Google Cloud Console).
Svårighetsgrad: Nybörjare. Du kopplar Google-credentials, klistrar in ett Sheet-ID och mappar några kolumner.
Behöver du hjälp att implementera detta? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Flödet i workflowet
Ett nytt IP hamnar i arket. Google Sheets-triggern (”Sheet Row Listener”) bevakar nya rader och hämtar IP-värdet från din ”IP”-kolumn.
Geolokalisering och ägarskapsdata hämtas. En HTTP-förfrågan anropar ip-api.com för IP:ts land, stad, koordinater, ISP och organisation, och sedan uppdaterar workflowet samma rad i Google Sheets (”Refresh IP Info Row”).
Portprober körs mot en liten lista. Workflowet tilldelar en port-array (80, 443, 8080, 8000, 3000), delar upp den i separata kontroller och testar var och en med en HTTP-förfrågan så att du får en enkel signal för nåbar/inte nåbar.
Resultaten konsolideras och skrivs tillbaka. n8n sammanställer svaren och uppdaterar kolumnerna Port_80, Port_443, Port_8000, Port_8080 och Port_3000, vilket innebär att varje IP-rad avslutas med en konsekvent ”intel-snapshot”.
Du kan enkelt ändra portlistan så att den matchar din miljö (eller ta bort portkontroller helt) utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera Google Sheets-triggern
Konfigurera arbetsflödet så att det lyssnar efter nya IP-rader i ert Google Sheet, så att berikningsflödet startar automatiskt.
- Lägg till och öppna Sheet Row Listener.
- Ställ in Event på
rowAdded. - Ställ in Document på
[YOUR_ID]och Sheet Name påSheet1(gid=0). - Behörighet krävs: Anslut era
googleSheetsTriggerOAuth2Api-uppgifter.
Sheet1, uppdatera väljaren Sheet Name till rätt flik för att undvika att missa nya rader.Steg 2: anslut Google Sheets
Säkerställ att uppdateringsnoderna kan skriva berikad IP- och portdata tillbaka till samma kalkylark.
- Öppna Refresh IP Info Row och verifiera att Operation är
update. - Bekräfta att kolumnmappningarna använder uttryck: IP
{{ $json.query }}, ISP{{ $json.isp }}, Lat{{ $json.lat }}, Lon{{ $json.lon }}, Org{{ $json.org }}, City{{ $json.city }}, Country{{ $json.country }}. - Behörighet krävs: Anslut era
googleSheetsOAuth2Api-uppgifter i Refresh IP Info Row. - Öppna Update Port Statuses och verifiera att Operation är
updatemed uttrycken: IP{{ $('Expand Port Items').first().json.IP }}, Port_80{{ $json.result['80'] }}, Port_443{{ $json.result['443'] }}, PORT_3000{{ $json.result['3000'] }}, Port_8000{{ $json.result['8000'] }}, Port_8080{{ $json.result['8080'] }}. - Behörighet krävs: Anslut era
googleSheetsOAuth2Api-uppgifter i Update Port Statuses.
IP-kolumn och att värdena är tillräckligt unika för att matcha rätt rad.Steg 3: konfigurera berikning och portbearbetning
Konfigurera begäran för databerikning, tilldelning av portlista och logiken för portexpansion som driver portkontrollerna.
- I Fetch IP Details, ställ in URL på
=http://ip-api.com/json/{{ $json.IP }}. - I Assign Port Array, ställ in Include på
selected, Include Fields påIP, och lägg till en tilldelning med namnet ports med typenarrayoch värdet[80,443,8080,8000,3000]. - I Expand Port Items, ställ in Field to Split Out på
portsoch Fields to Include påIP. - Bekräfta körordningen: Sheet Row Listener → Fetch IP Details → Refresh IP Info Row → Assign Port Array → Expand Port Items.
Steg 4: konfigurera portkontrollerna och aggregeringen
Konfigurera HTTP-kontrollerna, aggregeringslogiken och den slutliga uppdateringen som registrerar portåtkomst.
- I HTTP Port Probe, ställ in URL på
=http://{{ $json.IP }}:{{$json.ports}}/. - Behåll Timeout på
10000och aktivera Allow Unauthorized Certs tilltrue. - I Aggregate Port Results, behåll den angivna JavaScript Code som mappar varje port till ett booleskt resultat med
startsWithHttpCode(). - Bekräfta körordningen: Expand Port Items → HTTP Port Probe → Aggregate Port Results → Update Port Statuses.
Steg 5: testa och aktivera ert arbetsflöde
Verifiera att arbetsflödet berikar IP-data och uppdaterar portstatus korrekt innan ni aktiverar det i produktion.
- Klicka på Test workflow och lägg till en ny rad med ett IP-värde i ert Google Sheet.
- Bekräfta att Refresh IP Info Row skriver ISP-, plats- och organisationsinformation i arket.
- Verifiera att Update Port Statuses skriver booleska värden i kolumnerna Port_80, Port_443, PORT_3000, Port_8000 och Port_8080.
- När det är bekräftat, växla arbetsflödet till Active för att köra kontinuerligt.
Se upp för
- Google Sheets-credentials kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera: kontrollera n8n-posten under Credentials för Google Sheets och bekräfta att Google-projektet fortfarande har Sheets API aktiverat.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera outputs för alltid.
Vanliga frågor
Cirka 30 minuter om ditt Google Sheet är klart.
Ja. Ingen kodning krävs. Du kopplar främst Google Sheets och matchar kolumner.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna in användningen av ip-api.com (grund-endpointen används ofta gratis, men betalda nivåer gäller vid högre volym).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Du kan byta vad som skannas och vad som skrivs tillbaka utan att ändra grundmönstret. De flesta anpassningar sker i ”Assign Port Array” (ändra portarna), ”Fetch IP Details” (begär extra ip-api.com-fält som timezone eller ASN) och den sista Google Sheets-uppdateringen (lägg till nya kolumner som matchar). Om du bara bryr dig om geolokalisering kan du ta bort grenen för portprober helt och behålla den första uppdateringen. Om du vill ha larm kan du lägga till ett Slack-, Gmail- eller Telegram-meddelande efter ”Update Port Statuses” när ett visst land, ISP eller en öppen port upptäcks.
Oftast handlar det om en utgången eller utbytt Google OAuth-anslutning i n8n. Anslut Google Sheets-credentialen igen och bekräfta sedan att samma credential är vald i både triggern och uppdateringsnoderna. Kontrollera också att Sheet-ID:t i triggern och i båda Google Sheets-uppdateringsstegen matchar dokumentet du testar, eftersom ett enda felaktigt ID ser ut som att ”inget händer”.
Den skalar bra för typiska volymer i små team (tiotals eller några hundra IP per dag).
Ofta, ja, eftersom detta inte bara är ”skicka data från A till B”. Du gör berikning i flera steg, loopar över en lista med portar och sammanställer sedan resultaten till en enda raduppdatering, vilket är där enklare verktyg börjar kännas trånga eller dyra. n8n hanterar förgrening och iteration snyggt, och egen hosting betyder att du inte betalar per litet steg. Med det sagt: om du bara behöver ”IP in, land ut” då och då kan Zapier eller Make vara helt okej. Prata med en automationsspecialist om du vill ha en snabb rimlighetskontroll innan du bygger.
När detta väl rullar slutar ditt ark vara en att-göra-lista och börjar fungera som en riktig IP-inteltabell. Sätt upp det, låt det fylla sig självt och gå vidare till arbetet som faktiskt kräver din bedömning.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.