<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python基礎教程之獲取本機ip數據包示例

        來源:懂視網 責編:小采 時間:2020-11-27 14:30:01
        文檔

        python基礎教程之獲取本機ip數據包示例

        python基礎教程之獲取本機ip數據包示例:這幾天用到了raw socket,用python寫了些demo程序,這里記錄下。 首先我們看一個簡單的sniffer程序: 代碼如下:#! /usr/bin/python# code for linuximport socket#s = socket.socket(socket.AF_INET, socket.SOCK
        推薦度:
        導讀python基礎教程之獲取本機ip數據包示例:這幾天用到了raw socket,用python寫了些demo程序,這里記錄下。 首先我們看一個簡單的sniffer程序: 代碼如下:#! /usr/bin/python# code for linuximport socket#s = socket.socket(socket.AF_INET, socket.SOCK

        這幾天用到了raw socket,用python寫了些demo程序,這里記錄下。

        首先我們看一個簡單的sniffer程序:

        代碼如下:


        #! /usr/bin/python
        # code for linux
        import socket
        #s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)
        s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
        while True:
        print s.recvfrom(65535)

        這里直接用raw socket接收數據,直接print操作。這個就幾行代碼,也沒什么好解釋的了,不懂的google下。

        得到IP數據包后,接下來的工作就是對IP頭進行解析,在這之前,我們先看看RFC中是怎么定義的(RFC791 : http://www.ietf.org/rfc/rfc791.txt ):

        即對應的圖:


        從RFC和上圖中可以看到IP數據包頭各個字段所占的位數,我們可以根據這些定義去解析IP數據包頭,然后根據相應的策略處理數據。
        這里給出一段用python實現的解析IP頭的代碼(呵呵,是demo中的代碼,只解析了前20個字節):

        代碼如下:


        def decodeIpHeader(packet):
        mapRet = {}
        mapRet["version"] = (int(ord(packet[0])) & 0xF0)>>4
        mapRet["headerLen"] = (int(ord(packet[0])) & 0x0F)<<2
        mapRet["serviceType"] = hex(int(ord(packet[1])))
        mapRet["totalLen"] = (int(ord(packet[2])<<8))+(int(ord(packet[3])))
        mapRet["identification"] = (int( ord(packet[4])>>8 )) + (int( ord(packet[5])))
        mapRet["id"] = int(ord(packet[6]) & 0xE0)>>5
        mapRet["fragOff"] = int(ord(packet[6]) & 0x1F)<<8 + int(ord(packet[7]))
        mapRet["ttl"] = int(ord(packet[8]))
        mapRet["protocol"] = int(ord(packet[9]))
        mapRet["checkSum"] = int(ord(packet[10])<<8)+int(ord(packet[11]))
        mapRet["srcaddr"] = "%d.%d.%d.%d" % (int(ord(packet[12])),int(ord(packet[13])),int(ord(packet[14])), int(ord(packet[15])))
        mapRet["dstaddr"] = "%d.%d.%d.%d" % (int(ord(packet[16])),int(ord(packet[17])),int(ord(packet[18])), int(ord(packet[19])))
        return mapRet

        調用代碼:

        代碼如下:


        proto = socket.getprotobyname('tcp') # only tcp
        sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, proto)

        while True:
        packet = sock.recvfrom(65535)[0]
        if len(packet) == 0:
        sck.close()
        else:
        #print str(packet)
        mapIpTmp = decodeIpHeader(packet)
        for k,v in mapIpTmp.items():
        print k,"\t:\t",v

        print ""

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python基礎教程之獲取本機ip數據包示例

        python基礎教程之獲取本機ip數據包示例:這幾天用到了raw socket,用python寫了些demo程序,這里記錄下。 首先我們看一個簡單的sniffer程序: 代碼如下:#! /usr/bin/python# code for linuximport socket#s = socket.socket(socket.AF_INET, socket.SOCK
        推薦度:
        標簽: ip 本機 示例
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成全视频高清免费观看电视剧| 美女视频免费看一区二区| 3344在线看片免费| 最新国产AV无码专区亚洲 | 亚洲精品成人网久久久久久| 亚洲娇小性xxxx| 好吊妞在线新免费视频| 亚洲乱色熟女一区二区三区蜜臀| 在线免费观看一级片| 美女被爆羞羞网站免费| 亚洲国产精品第一区二区三区| 日本特黄特色AAA大片免费| 亚洲日本在线观看视频| 十八禁在线观看视频播放免费| 亚洲国产精品无码久久一线| **实干一级毛片aa免费| 中文字幕亚洲综合久久综合| 国产伦精品一区二区三区免费下载| 成年网在线观看免费观看网址| 伊人久久精品亚洲午夜| 亚洲成人免费在线观看| 亚洲欧美国产欧美色欲| 精品国产人成亚洲区| 亚欧免费视频一区二区三区| 亚洲av日韩av永久无码电影| 久久精品亚洲男人的天堂 | 免费AA片少妇人AA片直播| 亚洲熟伦熟女专区hd高清| 无码国产亚洲日韩国精品视频一区二区三区 | 最近新韩国日本免费观看| 亚洲精品又粗又大又爽A片| www.91亚洲| 免费人成视频在线观看网站| 亚洲一区二区无码偷拍| 亚洲精品WWW久久久久久| 91av在线免费视频| 精品亚洲视频在线| 亚洲卡一卡2卡三卡4卡无卡三| 免费鲁丝片一级观看| 两个人看的www高清免费视频| 美女视频黄免费亚洲|