Hi All,
Fairly new to Splunk and am attempting to write a query that checks for invalid login attempts and extracts ip and username. The interesting thing however is that sometimes host names appear in the 'ip' field instead of actual IP addresses. When this happens I attempt to do a DNS query to resolve to that host's IP address. It appears I'm missing a ')' in my eval statement, but I can't tell for the life of me where. It's not quite finished yet just trying to get the eval statement fixed.
The error I'm getting is this "Error in 'eval' command: The expression is malformed. Expected ). "
Any help is appreciated !
My Query:
sourcetype="xxxxx" "xxxxx"
| eval lookupip = if (ip == rex "(?<ip>\d+\.\d+\.\d+\.\d+)", ip, lookup dnslookup clientip AS ip)
| table lookupip
Try like this (check the field that you want to extract from your dnslookup)
sourcetype="foo" "bar"
| lookup dnslookup clientip as ip OUTPUT ip as temp
| eval ip=if(match(ip,"\d+\.\d+\.\d+\.\d+"),ip,temp) | table ip ...other fields..
Try like this (check the field that you want to extract from your dnslookup)
sourcetype="foo" "bar"
| lookup dnslookup clientip as ip OUTPUT ip as temp
| eval ip=if(match(ip,"\d+\.\d+\.\d+\.\d+"),ip,temp) | table ip ...other fields..
This is great thank you! However, now I am receiving this error:
'Error in 'lookup' command: Could not find all of the specified destination fields in the lookup table. '
I've been scouring the interwebs, but haven't been able to come up with answer to why this happens so far. Will keep searching in the meantime.
Do this and check the field name that you want to use if a hostname is specified instead of IP address. Once you find that replace "OUTPUT ip as temp
" with "OUTPUT whateverfieldyoufound as temp
"
| inputlookup dnslookup