我正在寻找新的解决方案来播放h.264热播视频,它基于1722协议,从其他设备进入以太网,在Windows 7或10中使用socket与linux环境中的方式类似。
我可以在linux中使用SO_BINDTODEVICE选项直接绑定网络接口,如果使用该选项,vlc播放器中的视频流是如此平滑,vlc统计数据显示比特率超过20 000 kb/s。
因此,我在Windows中尝试了两种方式,如下所示:
在python中使用scapy模块
- sniffing all raw packet Ethernet
- attach data on payload and send packet
因此,我试图追溯适合一个惊人的网络数据包嗅探器已经建立,但对linux。基本的jist是下面的代码可以用于socket.IPPROTO_UDP,而不是socket.IPPROTO_TCP。
import socket
#create an INET, STREAMing socket
HOST = socket.gethostbyname(socket.gethostname())
# create a raw socket and bind it to the public interface
s = socket.socket(socke
所以我有3个树莓派都连接在一个点对点网络上。我希望第一个pi向第二个pi发送tcp消息,并让第三个pi嗅探数据包,然后稍后处理数据。我遵循这段python代码,然而,当我运行它时,它似乎没有嗅探到不是发往第三个覆盆子pi的数据包,即使pi处于混杂模式。
#Packet sniffer in python for Linux
#Sniffs only incoming TCP packet
import socket, sys
from struct import *
#create an INET, STREAMing socket
try:
s = socket.socket(s
我想要创建一个监视windows和linux的嗅探器脚本。对于linux来说,这很容易,但对于windows则不然。我遇到了以下错误:
Traceback (most recent call last):
File "test_scapy.py", line 45, in <module>
main()
File "test_scapy.py", line 38, in main
sniff(filter="tcp port 80", prn=packet_callback, count=10)
File
使用AF_PACKET和环形缓冲区(伪C)使用以下方法捕获数据包:
// Set up socket
fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL))
// Set socket bind options
struct sockaddr_ll sll;
sll.sll_family = AF_PACKET
sll.sll_protocol = htons(ETH_P_ALL)
sll.sll_ifindex = 0 // Bind to all interfaces
// Bind socket to all interfaces
bi
我目前正在使用python实现一个基本的流量采样器,我想知道如何有效地实现每次捕获之间的采样器间隔。我没有使用sFlow,因为我想在我的NIC上采样流量。
我看过scapy,但它似乎没有提供采样功能。因此,在附加到嗅探的处理功能(例如,嗅探(prn=XXX))中,我是否应该实现自己的计时器来检查是否应该特别处理数据包?
#Packet sniffer in python
#For Linux
import socket
#create an INET, raw socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket
我看到下面的代码是用来发送原始数据包的。
s = socket(AF_PACKET, SOCK_RAW)
s.bind(("eth1", 0))
...
s.send(dst_addr+src_addr+ethertype+payload+checksum)
但当我在Mac上试用时,我看到了这一点。我不确定在MacOS上发送原始数据包的合适方式是什么。有人能让我知道吗?
NameError: name 'AF_PACKET' is not defined
以下是macOS帮助页面上显示的内容。它们中的任何一个都合适吗?
| AF_APPLETALK