@classmethod
def from_string(cls, ipstr, *args):
    """ Every line of output fed by _get(*args) should be converted into an object
            in this method, which may be subclassed if necessary.
        """
    match = cls.regex.match(ipstr)
    if not match:
        msg = 'No match found for {!r}: {!r}'.format(cls, ipstr)
        raise ValueError(msg)
    result = match.groupdict()
    return cls.construct(result, ipstr, *args)
