Splunk is pretty flexible. Take a look at lookup tables and custom search commands.
Lookup tables allow you to add new fields based on existing ones. Typically you'll use a CSV file, but you can also us custom Python code. Take a look at the earlier question about Using CIDR in a lookup table for more ideas.
Custom search commands allow you to take things further, and process search results almost any way you want. Again, these would be written in Python. For more information, look here and here.
For your example case, a lookup is the way to go. If you are blacklisting individual IP addresses, create a CSV-based lookup with two fields src_ip and blacklisted , then search for, e.g., blacklisted=1 . If you want to use network ranges instead, try the subnet lookup script referenced here or use eventtypes.
... View more