PPPoE***3:获取最新的sessi

2023-01-31 03:01:23 获取 最新 PPPoE

    在PPPoE会话的发现阶段,服务器会向客户端分配sessionid,而经过本人测试,这个sessionid的值是依次增大的;即:进行一次会话,得到sessionid为1,这时其他客户端进行拨号时,分配的sessionid为2,依次类推......

    

    那么,如何得到当前已经分配的sessionid范围呢?我们可以模拟一下PPPoE会话,得到新的sessionid。


    实现本功能的代码如下:

from scapy.all  import *

#你的PPPoE服务器的Mac地址,请酌情修改
servermac="00:0c:29:c6:ab:bc"

#定义PPPoE数据包的格式
def packet(code=0x09,len=0,macadd='ff:ff:ff:ff:ff:ff'):
        a=Ether()/PPPoE()
        a.dst=macadd
        a.type=0x8863
        a.payload.version=1
        a.payload.type=1
        a.payload.code=code
        a.payload.len=len
        return a

        #发送PADR数据包
sendp(packet(macadd=servermac,code=0x19))

#嗅探网卡得到的数据
c=sniff(filter='pppoed',count=1)

#PPPoE服务器返回的数据包(报文包含sessionid)
print 'PPPoE服务器的最新sessionid是 '+c[0].payload.sessionid


相关文章