MRT 文件库¶
介绍¶
OS-Ken MRT 文件库帮助您读取/写入 MRT(多线程路由工具包)路由信息导出格式 [RFC6396]。
读取 MRT 文件¶
为了加载 MRT 文件中包含的路由信息,您可以使用 mrtlib.Reader。
- class os_ken.lib.mrtlib.Reader(f)¶
MRT 格式文件读取器。
参数
描述
f
以二进制模式读取 MRT 格式文件的文件对象。
使用示例
import bz2 from os_ken.lib import mrtlib count = 0 for record in mrtlib.Reader( bz2.BZ2File('rib.YYYYMMDD.hhmm.bz2', 'rb')): print("%d, %s" % (count, record)) count += 1
写入 MRT 文件¶
为了转储您的 OSKenApp 生成的路由信息,您可以使用 mrtlib.Writer。
- class os_ken.lib.mrtlib.Writer(f)¶
MRT 格式文件写入器。
参数
描述
f
以二进制模式写入 MRT 格式文件的文件对象。
用例示例
import bz2 import time from os_ken.lib import mrtlib from os_ken.lib.packet import bgp mrt_writer = mrtlib.Writer( bz2.BZ2File('rib.YYYYMMDD.hhmm.bz2', 'wb')) prefix = bgp.IPAddrPrefix(24, '10.0.0.0') rib_entry = mrtlib.MrtRibEntry( peer_index=0, originated_time=int(time.time()), bgp_attributes=[bgp.BGPPathAttributeOrigin(0)]) message = mrtlib.TableDump2RibIPv4UnicastMrtMessage( seq_num=0, prefix=prefix, rib_entries=[rib_entry]) record = mrtlib.TableDump2MrtRecord( message=message) mrt_writer.write(record)