发送/接收原始以太网帧

2024-01-11

我必须在 Linux 上编写一个应用程序,该应用程序需要与具有自定义以太网类型的设备进行通信。即使在如何编写这样的应用程序的SO中也有很多解决方案。缺点是需要 root 访问权限(据我所知)。之后释放 root 权限可能是一种选择,但这会带来一个问题,即该程序是在 IDE 中开发的,我不喜欢以 root 身份运行它。在我的特殊情况下,主应用程序是用 Python 编写的,这意味着授予对整个 Python 解释器的 root 访问权限。我正在寻找可能的替代方案。例如。

  • 编写一个微型 UDP/TCP 服务器,通过 TCP/UDP 重定向每个原始数据包。这也可以用 Python 编写。只有这个小应用程序需要 root 权限。

  • 使用 socat 进行重定向,不幸的是我无法找到一个选项来只关心一种以太网类型而不被 IP 数据包溢出。

  • 还有其他想法吗?


我认为你只需要成为root,或者有CAP_NET_RAW,就可以打开套接字。一旦套接字打开,您就可以成为您喜欢的任何用户。

所以有:

  • 一个 setuid 帮助程序,它打开一个原始套接字,绑定它(如果需要),然后放弃它的 root 权限并执行你的主程序,保持套接字打开并以某种方式传递文件描述符编号(命令行?环境变量?)
  • 一个 setuid 帮助器,它将使用另一种机制(例如 unix 套接字)传递打开的文件描述符

  • 根拥有的守护进程,根据请求将此类打开的套接字描述符传递给其他程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送/接收原始以太网帧 的相关文章

  • VirtualBox 报错Interface ('VirtualBox Host-Only Ethernet Adapter') is not a Host-Only Adapt

    前几天用VBox虚拟机的时候 xff0c 忽然打不开了 xff0c 提示 无法为虚拟机打开一个新任务 xff0c 详细错误信息 Interface VirtualBox Host Only Ethernet Adapter is not a
  • Flex Ethernet (FlexE) 初识

    Flex Ethernet FlexE 初识 1 初识FlexE Flexible Ethernet 由OIF组织制定了其统一标准 xff0c 通过OIF FLEXE 01可以了解到其基本信息 xff1b 摘录其标准的一个概要说明 xff1
  • SGMII协议解析

    什么是SGMII 先说什么是GMII MII MII是ethernet协议里面MAC层和PHY层之间的接口标准 MII是4bits的数据位宽 支持10 100M的数据传输 GMII前面G表示Gigabit 代表支持1000M的传输速率 需要
  • 仅使用以太网帧的 Windows 网络

    我正在做一个项目 我必须为连接到 Windows 机器的设备编写网络库 复杂之处在于我只能使用以太网帧与设备进行通信 所以根本不存在TCP UDP IP 我不认为绑定 监听 接受方法可以应用在这里 但也许我错了 此外 不涉及路由或交换 我有
  • OpenCV:如何从以太网摄像头捕获帧

    我之前对 USB 网络摄像头进行了编程 其唯一目的是从摄像头获取实时帧并显示在窗口中 我使用 cvCaptureFromCAM 来实现此目的 它对于 USB 摄像头效果很好 请参见下面的代码 我想知道如何从千兆以太网摄像头捕获帧 我想我需要
  • Arduino DHCP 配置失败

    我正在使用与 Arduino 软件捆绑在一起的 Web 客户端的以太网草图示例 除了固件地址 我将其更改为印在以太网扩展板背面的地址 之外 无需更改其他任何内容 每当我将 Arduino 连接到网络并查看串行监视器时 我收到的唯一消息是 无
  • Python-仅获取连接的本地网卡的MAC地址[重复]

    这个问题在这里已经有答案了 目标是收集 MAC 地址连接的本地网卡的 不是所有本地 NIC 的列表 通过使用socket and connect to a website 我可以用getsockname 获取IP 用于连接到互联网 但是我怎
  • 我需要构建什么才能在内核级别直接访问以太网帧位?

    我想检索线路上所有以太网帧的以太网帧位 无论它们是否发往我的机器 MAC 级别 其逻辑必须位于内核级别 所以为了实现这一目标 我需要构建一个独立的内核模块 or 以太网驱动程序 or 以太网网络接口 注意 我刚刚开始为我的项目学习 Linu
  • 通过以太网直接连接笔记本电脑和arduino

    我用 Arduino 和以太网盾做了一个项目 Arduino 托管着一个网站 我可以通过笔记本电脑上的浏览器打开该网站 Arduino 通过以太网连接到路由器 所有这些都工作得很好 现在我必须在学校展示这个项目 为了防止出现令人不快的意外
  • 获取android以太网MAC地址(不是wifi接口)

    我使用的是 Api 级别 8 的 Android 我想获取以太网接口 eth0 的地址 在 API 级别 8 上 NetworkInterface 类没有函数 getHardwareAddress WifiManager 也不起作用 因为这
  • Android以太网使用dhcp配置IP [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个带有以太网接口的安卓盒子 android SDK 中没有用于配置以太网的 Java 类 作为最后的手段 我使用 shell 命令来配置以太网
  • NDIS 和微型端口驱动程序

    我正在尝试使用 Visual Studio 2012 中提供的 WDK 工具修改以太网驱动程序 WDK 中提供的示例包括 微型端口适配器 和 NDIS 轻量级过滤器 等 我仍处于驱动程序编写的最初阶段 因此发现很难浏览代码 在 Visual
  • 如何在没有 TCP/IP 堆栈的情况下用 Java 发送以太网帧

    我的 Java 应用程序应该控制直接连接到我的计算机 Ubuntu 和 Windows 网络接口的外部设备 EtherCAT 总线技术 没有连接其他网络设备 通信是在标准 IEEE 802 3 以太网帧上完成的 无需 IP 堆栈 发送数据示
  • Arduino 以太网扩展板未连接到 Web 服务器

    我在让 Arduino 以太网扩展板与服务器通信时遇到问题 串行监视器上的结果始终是 我的arduino代码是 include
  • 从 OTG 为以太网卡分配静态 IP

    我想为以太网卡分配静态 IP 通过 OTG 电缆连接到 Android 设备 它应该以编程方式完成 但我找不到有关 android 中以太网卡的任何参考 有任何想法吗 谢谢 如果它是 root 设备 你可以尝试使用这个 Process pr
  • P1010 MAC到交换机端口直连,无需PHY

    我有一个带有飞思卡尔 P1010 处理器的定制板 其中 P1010 的 eTSEC2 增强型 3 速以太网控制器 端口在 SGMII 模式下直接连接到 Marvell 88E6046 以太网交换机端口 9 Linux 3 17 DSA 驱动
  • Wireshark 中以太网帧末尾的 0 字节是什么?

    after ARP protocol in a frame there are many 0 bytes Does anyone know the reason for the existence of these 0 bytes 检查以太
  • 如何刷新原始 AF_PACKET 套接字以获得正确的过滤数据包

    sock socket AF PACKET SOCK RAW htons ETH P ALL setsockopt sock SOL SOCKET SO ATTACH FILTER f sizeof f 使用这个简单的 BPF LPF 附加
  • 如何在 Docker-Compose 中一起使用主机网络和任何其他用户定义的网络?

    我想将 Docker Compose 文件中定义的两个 Docker 容器相互连接 app and db 其中之一 app 也应该连接到host网络 容器应连接到通用的用户定义网络 appnet or default 使用嵌入式DNS来自
  • 通过 TCP/IP 同步两台 PC 之间的时间,无需服务器

    我有两台通过 LAN 连接的 PC 当用户更改一台机器上的时间 通过我的应用程序 时 我希望第二台机器上的时间也能更新 或者第二台机器可以轮询第一台机器 没有服务器 没有互联网 最好的方法是什么 操作系统 XP嵌入式 框架 Net 3 5

随机推荐

  • 基本PHP MySQL数组分组问题

    快速问题 我认为对于像我一样拥有最基本的 PHP MySQL 知识的人来说 这是一个非常简单的解决方案 我有一个存储在数据库中的各个州的城市列表 其中包含城市 州和一些其他变量 现在 它们被提取为按城市名称排序的列表 阿拉斯加安克雷奇 马里
  • DataGridView显示行标题单元格

    我正在尝试显示链接到 DataTable 的简单 DataGridView 并且最终我希望 DataTable 中的第一列成为 DataGridView 的行标题单元格 此时 我将满足于在行标题单元格中包含任何值 我可以显示带有所有行和列以
  • 标识符未定义

    我使用 VS2012 Express 用 C 编写了以下代码 void ac search uint num patterns uint pattern length const char patterns uint num records
  • 卷曲远程图像并调整其大小

    我使用此脚本来下载远程图像并调整其大小 在调整大小部分出现问题 它是什么
  • Android 使用自签名证书连接到服务器

    编辑 下面的代码工作正常 没有错误 没有异常 我知道关于这个主题的大量问题 以及谷歌想到的许多博客 我已通读它们并设法想出我将要解释的内容 我的疑问在于 我的方法正确吗 它有副作用吗 以及在我解释我的方法时最好提出的另一个问题 我基于此方法
  • NIO getParentFile().mkdir() [重复]

    这个问题在这里已经有答案了 有没有一种方法可以一次性创建文件和目录 如下所示 使用 Java 7 和 NIO 路径和文件静态方法 在哪里您不必键入路径 然后将文件分成单独的行 代码 File file new File Library te
  • 当调用clock_gettime()时返回的tv_nsec字段实际上可能超过一秒吗?

    当你调用clock gettime 它返回一个 timespec 结构 struct timespec time t tv sec seconds long tv nsec nanoseconds 我在手册页中没有找到 tv nsec 不会
  • 从连续的字序列中提取任意范围的位的最有效方法是什么?

    假设我们有一个std vector 或任何其他序列容器 有时它是一个双端队列 它存储uint64 t元素 现在 让我们将该向量视为一个序列size 64连续的位 我需要找到由给定的位组成的单词 begin end 范围 鉴于end begi
  • UItableVIew 中的效果或动画

    当我单击 tableView 时 它会显示类似这样的内容以显示详细信息 我怎样才能做到这一点 我认为你需要的是一个类似于手风琴的实现 以下是一些示例参考 您可以从这里开始 如何为 iPhone SDK 应用程序实现手风琴视图 https s
  • 一个由两个弹性项目组成的弹性盒网格,其中一个弹性项目旁边有一个[重复]

    这个问题在这里已经有答案了 我想在左侧放置一个 div 在右侧放置两个 div 这bottomright应始终低于topRight分区这topRight是唯一一个高度可变的 div 我目前正在尝试使用flexbox你可以在我下面的代码中看到
  • OpenCV 上的 Libpng 冲突?

    我正在尝试使用以下代码在 XCode 4 4 Mountain Lion 上打开 png 文件 适用于 jpg 文件 Mat image imread Users user name Desktop result png imshow im
  • Kafka Connect 不支持主题策略

    Context 我编写了几个小代码卡夫卡连接 https docs confluent io current connect index html连接器 一个每秒生成随机数据 另一个将其记录在控制台中 它们集成了一个模式注册表 https
  • 单击后退按钮两次以使用 rxjava 退出活动

    寻找一种微妙的接收方法来退出活动 同时按两次后退按钮 boolean doubleBackToExitPressedOnce false Override public void onBackPressed if doubleBackToE
  • content.select() 不适用于 元素

    我正在尝试制作一个按钮来选择 a 的内容 code 元素 但是 它不起作用 我得到了 content select 不是一个函数 div div code
  • 基于输入的变量

    Python版本 3 5 所以我想知道如何根据用户的输入设置变量 例如 如果用户要回答7对此 居民 输入 你家有多少人住 编辑 如果他们输入7 我怎样才能询问每个人的名字 Thanks def get int prompt while Tr
  • 如何进行 FST(有限状态换能器)组合

    考虑以下 FST T1 0 1 a b 0 2 b b 2 3 b b 0 0 a a 1 3 b a T2 0 1 b a 1 2 b a 1 1 a d 1 2 a c 如何对这两个 FST 即 T1 o T2 执行组合操作 我看到了一
  • 使用 CTE 索引视图

    所以 我刚刚发现 SQL Server 2008 不允许您在定义中使用 CTE 索引视图 但它允许您alter要添加的查询with schemabinding在视图定义中 这有充分的理由吗 出于某种我不知道的原因 这是否有意义 我的印象是W
  • 如果 NSAllowsArbitraryLoads 设置为 YES,App Store 是否会拒绝提交?

    The new ATS https developer apple com library prerelease ios technotes App Transport Security Technote iOS 9 涉及导致许多 http
  • Django HTSQL TransactionManagementError 与 sqlite 以及 PostgreSQL 后端

    我正在尝试将 HTSQL 用于我的 Django 项目之一 为此 我遵循了给出的程序HERE http htsql org blog 2012 introducing django gateway html用于提供 HTSQL Django
  • 发送/接收原始以太网帧

    我必须在 Linux 上编写一个应用程序 该应用程序需要与具有自定义以太网类型的设备进行通信 即使在如何编写这样的应用程序的SO中也有很多解决方案 缺点是需要 root 访问权限 据我所知 之后释放 root 权限可能是一种选择 但这会带来