Splunk Search

How do I write the regular expression to extract the domain name from email addresses in SMTP logs?

jspvkey
Explorer

Hi,

I am really new to Splunk and Regular Expression stuff. I was planning to extract just the domain names of all e-mail senders in my SMTP Log. For example, If the sender field value is store_news @amazon.com, then I just want to extract the domain name which is amazon.com. Can somebody please provide me a way to perform this?

Thanks
Appreciated

0 Karma

mhassan
Path Finder

Here is another one

@(?\w+.\w{3})
0 Karma

lguinn2
Legend

This one won't work for all email addresses...

0 Karma

martynoconnor
Communicator

Agreed, there are top level domains with shorter and longer lengths. Also the dot isn't escaped.

0 Karma

jluo_splunk
Splunk Employee
Splunk Employee

If you are uncomfortable with regular expressions, you can use the Interactive Field Extractor. Documentation here: http://docs.splunk.com/Documentation/Splunk/6.3.2/Knowledge/ExtractfieldsinteractivelywithIFX

0 Karma

somesoni2
Revered Legend

Try something like this

your base search  | eval sender_domain=mvindex(split(sender,"@"),-1) .....

OR

your base search  | rex field=sender ".*@(?<sender_domain>.*)" 

thahn
Explorer

Based on your answer, I used the following to extract the domain part and sort by number of occurrences for the top 20:

your base search | eval sender_domain=mvindex(split(sender,"@"),-1)  | top limit=20 sender_domain
0 Karma
Get Updates on the Splunk Community!

.conf24 | Day 0

Hello Splunk Community! My name is Chris, and I'm based in Canberra, Australia's capital, and I travelled for ...

Enhance Security Visibility with Splunk Enterprise Security 7.1 through Threat ...

 (view in My Videos)Struggling with alert fatigue, lack of context, and prioritization around security ...

Troubleshooting the OpenTelemetry Collector

  In this tech talk, you’ll learn how to troubleshoot the OpenTelemetry collector - from checking the ...