Nigel Metheringham edited this page Nov 29, 2012 · 2 revisions

Q9812

Question

How can I lookup data from a single file using both single IP addresses and IP address blocks as keys? I want to set smtp_accept_max_per_host by this means, and also include a default.

Answer

You cannot do this in a single lookup, because you need separate lookups for individual addresses and address blocks. However, these lookups can be nested in a single expansion string. For example, suppose you are using an lsearch file with entries like this:

192.168.34.35:    4
192.168.34.0/24:  2
*:                1

You can use this setting:

smtp_accept_max_per_host = \
  ${lookup{$sender_host_address}lsearch{/path/to/file}\
  {$value}\
  {\
  ${lookup{${mask:$sender_host_address/24}}lsearch*{/path/to/file}}\
  }}

Note that the first lookup does not have an asterisk on the search type. If you have blocks of different sizes (/24, /26, etc) you have to configure it to do a separate lookup for each size, with just the final one using a default.


Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.