Python网络编程3--实现IP源站路由

Python011

Python网络编程3--实现IP源站路由,第1张

  源站路由可以事先规定IP数据包所经过得路由器,每经过一个路由器就改变数据包的目的地址(下一跳)

  使用IP头部中的option字段记录路由IP。该字段最大40字节,因此最多存放9个IP,记录格式如下:

Type :占1字节,code 的值此处设为137。

length :占1字节,记录整个选项的长度。

pointer :指针项,占1个字节,指向下一个被处理的源站地址,最小值为4。

  发送主机从应用程序接收源站路由清单,最后一个表项(它是数据报的最终目的地址),剩余的为所有经过的下一跳,每经过一个设备都会检查是否是最终目标,如不是则从列表中读取下一项作为数据包下一跳的目的地址,同时数据包每从一个路由器发出,就记录其出接口的地址,用其替换掉清单中的上一跳地址,数据包返回时任然按照原来的路径返回。

  如下图,主机S上的发送应用程序发送一份数据报给D,指定源路由为R1,R2和R3。#表示指针字段,其值分别是4、8、12和16(一个值表示一个32位IP)。长度字段恒为1 5(三个IP地址加上三个字节首部)。可以看出,每一跳IP数据报中的目的地址都发生改变。

执行python脚本只需要对python文件做如下操作即可:

在python文件里第一行加上#! /usr/bin/python,即你的python解释器所在的目录。另外还有一种写法是#! /usr/bin/env python

编辑完成python脚本文件后为它加上可执行权限。

例如你的python脚本文件叫做runit.py,那么就在shell中输入如下命令:chmod +x runit.py

之后直接在shell中输入./runit.py就可以执行你的python程序了。

当然这是在Linux下的操作,如果想在windows下直接执行Python程序,就需要使用py2exe工具将python源程序编译成exe文件了。