欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)DHCP請求方式

 更新時間:2024年06月27日 10:04:47   作者:憤怒的玉米棒  
這篇文章主要介紹了Python實現(xiàn)DHCP請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

DHCP四個工作步驟

1、客戶端通過廣播發(fā)送DHCP Disccover報文尋找服務(wù)器端

2、服務(wù)器通過單播發(fā)送DHCP offer報文向客戶提供IP地址等信息

3、客戶端通過廣播發(fā)送DHCP Request報文告知服務(wù)端本地選擇使用哪個IP

4、服務(wù)器通過單播發(fā)送DHCP Ack報文告知客戶端IP地址是合法可用的

使用python Scapy庫模擬DHCP包

DHCP Discover包

rom scapy.all import *
import random
 
 
def Dhcp_offer():
    mac=str(RandMAC()) //隨機一個MAC
    Ether_Discover=Ether(src=mac,dst="ff:ff:ff:ff:ff:ff") //創(chuàng)建Ether廣播包 目標地址全f
 
    IP_Discover=IP(src="0.0.0.0",dst="255.255.255.255")   //創(chuàng)建IP廣播包 目標全255
   
     
    UDP_Discover=UDP(dport=67,sport=68)   //DHCP使用UDP傳輸 服務(wù)端端口67 客戶端68                
 
    print("隨機mac地址為%s" %(mac)) 
 
    a=mac.replace(":","")    
 
    xid_random=random.randint(1,999999999)   //DHCP包中XID(請求ID)
    BOOTP_Discover=BOOTP(xid=xid_random,chaddr=a)  //chaddr=客戶端mac
 
    DHCP_Discover=DHCP(options=[("message-type","discover"),"end"]) 
    //模擬DHCP包
 
    Discover=Ether_Discover/IP_Discover/UDP_Discover/BOOTP_Discover/DHCP_Discover 
 
    sendp(Discover,iface='以太網(wǎng)',count=1) //發(fā)送 iface為發(fā)送網(wǎng)卡 count為數(shù)量

DHCP Request包

def Dhcp_Request():
 
    def J(pkt):
        if DHCP in pkt:
            if pkt[DHCP].options[0][1]==2:  //option為2 說明服務(wù)端回復
                Ether_Request = Ether(src=pkt[Ether].dst, dst="ff:ff:ff:ff:ff:ff")
                IP_Request = IP(src="0.0.0.0", dst="255.255.255.255")
                UDP_REQUEST = UDP(sport=68, dport=67)
                BOOTP_Request = BOOTP(chaddr=pkt[BOOTP].chaddr, xid=pkt[BOOTP].xid)
                DHCP_Request = DHCP(options=[("message-type", 'request'), ("server_id", pkt[DHCP].options[1][1]),
                                             ("requested_addr", pkt[BOOTP].yiaddr), "end"])
                Request = Ether_Request / IP_Request / UDP_REQUEST / BOOTP_Request / DHCP_Request
                sendp(Request, iface='以太網(wǎng)',count=1)
                print("正在分配ip%s" %(pkt[BOOTP].yiaddr))
            if pkt[DHCP].options[0][1]==5:
                print("已經(jīng)分配ip%s" %(pkt[BOOTP].yiaddr))
    
    sniff(filter='src port 67', iface='以太網(wǎng)', prn=J,count=5)  //監(jiān)聽收到的offer包 prn為處理包的函數(shù)
 

運行效果

此代碼只是模擬了客戶端,也可用通過Scapy模擬服務(wù)端

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中關(guān)于tqdm的用法

    python中關(guān)于tqdm的用法

    這篇文章主要介紹了python中關(guān)于tqdm的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pygame實現(xiàn)打字游戲

    pygame實現(xiàn)打字游戲

    這篇文章主要為大家詳細介紹了pygame實現(xiàn)打字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 利用Python中SocketServer 實現(xiàn)客戶端與服務(wù)器間非阻塞通信

    利用Python中SocketServer 實現(xiàn)客戶端與服務(wù)器間非阻塞通信

    本文主要介紹了利用Python中SocketServer 實現(xiàn)客戶端與服務(wù)器間非阻塞通信示例代碼,具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • Python3獲取拉勾網(wǎng)招聘信息的方法實例

    Python3獲取拉勾網(wǎng)招聘信息的方法實例

    這篇文章主要給大家介紹了關(guān)于Python3獲取拉勾網(wǎng)招聘信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python3具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • 提升Python編程水平必不可少的重構(gòu)技巧

    提升Python編程水平必不可少的重構(gòu)技巧

    在Python中,編寫可讀性強且Pythonic的代碼是至關(guān)重要的,重構(gòu)技巧是指通過調(diào)整代碼結(jié)構(gòu)和風格,使其更符合Python的慣例和標準,從而提高代碼的可讀性、簡潔性和可維護性,本文將深入探討八項重構(gòu)技巧,幫助您編寫更Pythonic的代碼
    2024-01-01
  • python3.5安裝python3-tk詳解

    python3.5安裝python3-tk詳解

    這篇文章主要介紹了python3.5安裝python3-tk詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 使用pyscript在網(wǎng)頁中撰寫Python程式的方法

    使用pyscript在網(wǎng)頁中撰寫Python程式的方法

    本文主要介紹了使用pyscript在網(wǎng)頁中撰寫Python程式的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • python解析html提取數(shù)據(jù),并生成word文檔實例解析

    python解析html提取數(shù)據(jù),并生成word文檔實例解析

    這篇文章主要介紹了python解析html提取數(shù)據(jù),并生成word文檔實例解析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python設(shè)置環(huán)境變量的幾種方法總結(jié)

    python設(shè)置環(huán)境變量的幾種方法總結(jié)

    這篇文章主要介紹了在Python中設(shè)置環(huán)境變量可以通過多種方式實現(xiàn),包括使用os.environ、os.putenv、setuptools以及在操作系統(tǒng)級別設(shè)置,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • 利用PyQt5生成過年春聯(lián)

    利用PyQt5生成過年春聯(lián)

    這篇文章主要介紹了如何利用PyQt5生成過年春聯(lián)。通過在界面上輸入春聯(lián)的上、下批和橫批漢字從而生成春聯(lián)圖像,最后將春聯(lián)圖片保存。需要的可以參考一下
    2022-01-01

最新評論