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

    在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