Get the IPGrant list for the SMTP virtual server.

    :param bool as_wmi_format: Returns the connection IPs as a list in the format WMI expects.
    :param str server: The SMTP server name.

    :return: A dictionary of the IP and subnet pairs.
    :rtype: dict

    CLI Example:

    .. code-block:: bash

        salt '*' win_smtp_server.get_connection_ip_list

def get_connection_ip_list(as_wmi_format=False, server=_DEFAULT_SERVER):
    '''
    Get the IPGrant list for the SMTP virtual server.

    :param bool as_wmi_format: Returns the connection IPs as a list in the format WMI expects.
    :param str server: The SMTP server name.

    :return: A dictionary of the IP and subnet pairs.
    :rtype: dict

    CLI Example:

    .. code-block:: bash

        salt '*' win_smtp_server.get_connection_ip_list
    '''
    ret = dict()
    setting = 'IPGrant'
    reg_separator = r',\s*'

    if as_wmi_format:
        ret = list()

    addresses = _get_wmi_setting('IIsIPSecuritySetting', setting, server)

    # WMI returns the addresses as a tuple of unicode strings, each representing
    # an address/subnet pair. Remove extra spaces that may be present.
    for unnormalized_address in addresses:
        ip_address, subnet = re.split(reg_separator, unnormalized_address)
        if as_wmi_format:
            ret.append('{0}, {1}'.format(ip_address, subnet))
        else:
            ret[ip_address] = subnet

    if not ret:
        _LOG.debug('%s is empty.', setting)
    return ret