dhcp.py 文件源码

python
阅读 40 收藏 0 点赞 0 评论 0

项目:networks 作者: delimitry 项目源码 文件源码
def __str__(self):
        longest_name = max([len(k[0]) for k in self._fields_])
        indent_fmt = '{{:>{}s}}: {{}}\n'.format(longest_name)
        indent_verbose_fmt = '{{:>{}s}}: {{}} ({{}})\n'.format(longest_name)
        out = ''
        for k in self._fields_:
            value = getattr(self, k[0])
            if k[0] in ('chaddr', 'sname', 'file'):
                value = ctypes.cast(value, c_char_p).value
                out += indent_fmt.format(k[0], value.hex() if PY3 else value.encode('hex'))
            elif k[0] in ('xid'):
                out += indent_verbose_fmt.format(k[0], value, hex(value).rstrip('L'))
            elif k[0] in ('flags'):
                out += indent_verbose_fmt.format(k[0], value, 'broadcast' if value & 0x8000 else hex(value))
            elif k[0] in ('op'):
                out += indent_verbose_fmt.format(k[0], value, opcodes.get(value, '?'))
            elif k[0] in ('htype'):
                out += indent_verbose_fmt.format(k[0], value, hw_types.get(value, '?'))
            elif k[0] in ('ciaddr', 'yiaddr', 'siaddr', 'giaddr'):
                out += indent_verbose_fmt.format(k[0], value, int_to_ip(value))
            else:
                out += indent_fmt.format(k[0], value)
        return out.rstrip()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号