I am looking to find events where IP address changes from previous to current, however using fist(ip) and last(ip) misses the events in between the first and last...
Ideally I am looking to find when a change occurs for the IP value and then look at the previous IP value... this comparison is then used to find ip geoloc and calc the speed = dist/time with haversine app.
Thank you
Look at the streamstats
command for this. Any tracking of change over time, streamstats
is your go-to verb.
We'll assume there is a key called user
.
your search that gets the records you want, with at least these fields
| fields _time user someIP
| sort 0 _time
| streamstats current=f last(someIP) as priorIP last(_time) as priorTime by user
| where NOT (someIP=priorIP)
... the remainder of your search.
Look at the streamstats
command for this. Any tracking of change over time, streamstats
is your go-to verb.
We'll assume there is a key called user
.
your search that gets the records you want, with at least these fields
| fields _time user someIP
| sort 0 _time
| streamstats current=f last(someIP) as priorIP last(_time) as priorTime by user
| where NOT (someIP=priorIP)
... the remainder of your search.
Wow that is awesome!!! Thanks
You are quite welcome. streamstats
processes the records in order, remembering only the records it has already seen, so you must sort the records in the order you want before you apply the command.
so that is the purpose of sort 0 > return all results, thanks