def unpack_ipv4_bytes(byte_pattern):
    """ Given a list of raw bytes, parse out and return a list of IPs

    :param byte_pattern: The raw bytes from the DHCP option containing
        a list of IP addresses. The RFC specifies that an IP list will
        be a list of octets, with each group of 4 octets representing
        one IP address. There are no separators or terminators.
    :returns: a list of IP addresses as strings"""

    ip_list = []
    # reverse the bytes so we can pop them off one at a time
    byte_pattern.reverse()
    while len(byte_pattern) > 3:
        # if there are at least 4 octets, add them as an IP to the list
        ip_string = ''
        for i in range(0, 3):
            ip_string += str(byte_pattern.pop()) + "."
        ip_string += str(byte_pattern.pop())
        ip_list.append(ip_string)
    return ip_list