最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用原始套接字發(fā)送二層包(鏈路層幀)的方法

 更新時(shí)間:2019年07月22日 21:18:52   作者:linux_c_coding_man  
今天小編就為大家分享一篇python使用原始套接字發(fā)送二層包(鏈路層幀)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

發(fā)送端代碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import socket
import struct

raw_socket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x1234))
raw_socket.bind(("eth0", 0))
packet = struct.pack("!6s6sH", "\xff\xff\xff\xff\xff\xff", "\xaa\xaa\xaa\xaa\xaa\xaa", 0x1234)
while True:
 print repr(packet)
 raw_socket.send(packet + "hello,world!")

1.創(chuàng)建套接字使用地址家族PF_PACKET,類型為SOCK_RAW,自定義類型為0x1234,這個和C語言一模一樣。自定義類型我們也可以使用0X0800,這個是ETH_P_IP,相當(dāng)于我們模擬ip包來發(fā)送,那么ip包頭和mac包頭都需要我們自己填寫?,F(xiàn)在我們使用0x1234,系統(tǒng)定義之外的協(xié)議類型。

2.由于是發(fā)送二層包,我們默認(rèn)網(wǎng)卡沒有配置網(wǎng)絡(luò),也就是ping不通的情況下,直接綁定網(wǎng)卡上。

3.linux內(nèi)核中定義的mac包頭結(jié)構(gòu)

struct ethhdr
{
 unsigned char h_dest[6];
 unsigned char h_source[6];
 uint16_t h_proto; //0x1234
};

第一個是目的mac地址,第二個是本機(jī)mac地址,第三個是自定義類型必須填寫,這樣對方也關(guān)心這個自定義類型時(shí),協(xié)議棧收到二層包才能正確給到對方的套接字。通過這個結(jié)構(gòu)體,所以使用了pack,”!6s6sH”。我這里使用的廣播地址發(fā)送。
接收端代碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import socket
import struct

raw_socket = socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x1234))
while True :
 packet = raw_socket.recv(1024)
 data = struct.unpack("!6s6sH12s", packet)
 print repr(data[0])
 print repr(data[1])
 print repr(data[2])
 print repr(data[3])

以上這篇python使用原始套接字發(fā)送二層包(鏈路層幀)的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • CentOS 7下安裝Python 3.5并與Python2.7兼容并存詳解

    CentOS 7下安裝Python 3.5并與Python2.7兼容并存詳解

    這篇文章主要給大家介紹了在CentOS 7下安裝Python 3.5并與Python2.7兼容并存的相關(guān)資料,文中將安裝步驟介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • pytorch張量和numpy數(shù)組相互轉(zhuǎn)換

    pytorch張量和numpy數(shù)組相互轉(zhuǎn)換

    在使用pytorch作為深度學(xué)習(xí)的框架時(shí),經(jīng)常會遇到張量tensor和矩陣numpy的類型的相互轉(zhuǎn)化的問題,本文主要介紹了pytorch張量和numpy數(shù)組相互轉(zhuǎn)換,感興趣的可以了解一下
    2024-02-02
  • Python如何輸出整數(shù)

    Python如何輸出整數(shù)

    在本篇文章里小編給大家分享的是關(guān)于Python輸出整數(shù)實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python設(shè)計(jì)模式中的結(jié)構(gòu)型適配器模式

    Python設(shè)計(jì)模式中的結(jié)構(gòu)型適配器模式

    這篇文章主要介紹了Python設(shè)計(jì)中的結(jié)構(gòu)型適配器模式,適配器模式即Adapter?Pattern,將一個類的接口轉(zhuǎn)換成為客戶希望的另外一個接口,下文內(nèi)容具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-02-02
  • 關(guān)于反爬蟲的一些簡單總結(jié)

    關(guān)于反爬蟲的一些簡單總結(jié)

    這篇文章主要介紹了關(guān)于反爬蟲的一些簡單總結(jié),具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • python溫度轉(zhuǎn)換華氏溫度實(shí)現(xiàn)代碼

    python溫度轉(zhuǎn)換華氏溫度實(shí)現(xiàn)代碼

    這篇文章主要介紹了python溫度轉(zhuǎn)換華氏溫度實(shí)現(xiàn)代碼內(nèi)容,有需要的朋友們可以測試下。
    2020-12-12
  • 跟老齊學(xué)Python之有容乃大的list(1)

    跟老齊學(xué)Python之有容乃大的list(1)

    這一講中的list類型,也是python的一種數(shù)據(jù)類型。翻譯為:列表。LIST在python中具有非常強(qiáng)大的功能。
    2014-09-09
  • python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life)

    python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life)

    這篇文章主要介紹了python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • python樹莓派紅外反射傳感器

    python樹莓派紅外反射傳感器

    這篇文章主要為大家詳細(xì)介紹了python樹莓派紅外反射傳感器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python json.dumps中文亂碼問題解決

    python json.dumps中文亂碼問題解決

    這篇文章主要介紹了python json.dumps中文亂碼問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評論

金堂县| 留坝县| 富民县| 秦皇岛市| 永昌县| 延长县| 永川市| 绿春县| 台湾省| 安新县| 行唐县| 灌阳县| 阿尔山市| 灵宝市| 宜黄县| 迭部县| 电白县| 木兰县| 云浮市| 旬邑县| 洛隆县| 新绛县| 潢川县| 苏尼特右旗| 黄石市| 巫溪县| 华阴市| 汨罗市| 桓仁| 海丰县| 浏阳市| 丰宁| 湘潭市| 连江县| 株洲县| 兴安盟| 宣城市| 尚志市| 玉树县| 江山市| 昌图县|