标签: ethernet

如何使用损坏的FCS发送以太网帧?

我不确定这是否可能,因为这可能是在硬件中处理的,但我需要发送一些有错误的以太网帧.我希望能够创建runts,jabber,misalignment和错误的FCS错误.我在Python工作.

python networking automated-tests ethernet

8
推荐指数
2
解决办法
1万
查看次数

OpenCV:如何从以太网相机捕获帧

我之前编写过USB网络摄像头,其唯一目的是从摄像头获取实时帧并在窗口中显示.我为此目的使用了cvCaptureFromCAM,它适用于USB Camera(见下面的代码).

我想知道如何从千兆以太网相机中捕获帧?我想我需要使用一些API从一些默认IP地址捕获帧.有人能指出我正确的方向吗?

我将在Intel i3处理器上的Windows 7上使用C++和OpenCV.

#include "cv.h"
#include "highgui.h"
#include <stdio.h>

// A Simple Camera Capture Framework 
int main() {
    CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
    if ( !capture ) {
        fprintf( stderr, "ERROR: capture is NULL \n" );
        getchar();
        return -1;
    }

    // Create a window in which the captured images will be presented
    cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );

    // Show the image captured from the camera in the window and repeat
    while ( 1 ) {
        // Get …
Run Code Online (Sandbox Code Playgroud)

c++ opencv ethernet ip-camera

8
推荐指数
2
解决办法
2万
查看次数

如何在没有TCP/IP堆栈的情况下用Java发送以太网帧

我的Java应用程序应该控制直接连接到我的计算机网络接口(Ubuntu和Windows)的外部设备(EtherCAT总线技术).没有连接其他网络设备.通信已在标准IEEE 802.3以太网帧上完成,没有IP堆栈.

发送数据的示例:

int etherType =  0x88A4;  // the EtherType registered by IEEE
byte[] macBroadcast = new byte[] {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
byte[] macSource = new byte[] ... ;  // MAC Address of my network interface card
byte[] buffer = ... // the data to send

device.write(macSource, macBroadcast, etherType, buffer);
Run Code Online (Sandbox Code Playgroud)

我尝试了使用pcap本机库的JNetPcap.给定的API很好,但是在重载时存在多线程问题,这迫使我放弃.

netty.io也是候选人.我不确定,但TCP/IP堆栈是强制性的.我对吗?

是否有其他想法与低级别以太网帧通信?我更喜欢像netty.io这样的纯java库,如果存在的话.

当然JNA/JNI也是一种选择.但我不想写C代码.

其他选择?

java ethernet raw-ethernet

8
推荐指数
1
解决办法
7620
查看次数

如何将以太网设备直接连接到linux中的交换机?

我们有一个嵌入式主板,其中以太网设备直接连接到交换机,两者之间没有phy.为了使事情变得更复杂,以太网设备的mdio总线连接到交换机的mdio进行控制.

我已设法使用固定的mdio/phy驱动程序启用以太网,并通过将交换机的默认配置与固定的phy匹配来工作.

我现在如何连接到mdio总线以更改开关设置?由于以太网设备附加的phy由固定的phy填充,我现在如何将真正的mdio总线连接到系统,以便我可以对其进行配置.似乎没有直接用户空间接口到mdio总线.我是否创建了一个假的以太网设备,其唯一目的是访问mdio总线或者以某种方式将它连接到以太网设备,然后将连接两个mdio总线?

PS:看起来物理mdio总线驱动程序找到了开关,但我该如何与它交谈?

linux ethernet linux-device-driver linux-kernel embedded-linux

8
推荐指数
1
解决办法
6670
查看次数

以太网和无线IP地址的区别?

这可能是一个非常基本的问题,答案相当简单,但我只是想知道是否有人可以澄清为什么我的以太网连接和无线局域网连接有不同的IP地址,而不仅仅是实际机器的一个IP地址?

ip networking lan ethernet ipv4

8
推荐指数
1
解决办法
7993
查看次数

scapy中嗅探功能的过滤选项

我正在研究一种基于scapy的工具,我需要根据协议和目的地的IP地址来嗅探数据包

我想知道如何使用sniff()函数中的filter选项.我尝试在文档中使用格式,但大多数时候它会导致这样的问题. scapy中的sniff函数过滤器无法正常工作.

我使用的是

a=sniff(filter="host 172.16.18.69 and tcp port 80",prn = comp_pkt,count = 1)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python linux networking ethernet scapy

8
推荐指数
1
解决办法
2万
查看次数

什么是iPhone/Android响应ARP请求的策略

当我arping用来发送ARP请求(我知道睡觉的iPhone没有回复ICMP ping)来睡觉的iPhone/Androids(意味着它们打开但是屏幕很暗)连接在同一个wifi上时,iPhone回复给我这样的:

ARPING 10.109.201.139
Timeout
Timeout
Timeout
42 bytes from e0:ac:cb:b0:22:5b (10.109.201.139): index=0 time=20.201 msec
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
42 bytes from e0:ac:cb:b0:22:5b (10.109.201.139): index=1 time=65.401 msec
Timeout
Run Code Online (Sandbox Code Playgroud)

但有时,iPhone会不断回复.有时它根本不回答arping.Android答案如下:

ARPING 10.109.201.119
Timeout
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=0 time=78.345 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=1 time=148.228 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=2 time=217.777 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=3 time=84.933 msec
Timeout
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=4 time=174.140 …
Run Code Online (Sandbox Code Playgroud)

networking ethernet ping arp libpcap

8
推荐指数
1
解决办法
834
查看次数

linux raw ethernet socket绑定到特定协议

我正在编写代码以在两个Linux机箱之间发送原始以太网帧.为了测试这个,我只想获得一个简单的客户端发送和服务器接收.

我让客户端正确地创建数据包(我可以使用数据包嗅探器看到它们).

在服务器端,我像这样初始化套接字:

fd = socket(PF_PACKET, SOCK_RAW, htons(MY_ETH_PROTOCOL));
Run Code Online (Sandbox Code Playgroud)

MY_ETH_PROTOCOL我用作ethertype的2字节常量在哪里,所以我没有听到无关的网络流量.

当我将这个套接字绑定到我的接口时,我必须在socket_addr结构中再次传递一个协议: socket_address.sll_protocol = htons(MY_ETH_PROTOCOL);
如果我编译并运行这样的代码,那么它就会失败.我的服务器没有看到数据包.但是,如果我像这样更改代码:
socket_address.sll_protocol = htons(ETH_P_ALL);
服务器然后可以看到从客户端发送的数据包(以及许多其他数据包),所以我必须检查数据包,看它是否匹配MY_ETH_PROTOCOL.

但我不希望我的服务器听到未在指定协议上发送的流量,因此这不是解决方案.我该怎么做呢?

sockets linux ethernet

7
推荐指数
1
解决办法
1万
查看次数

OS X(C)接口的MAC地址

这可能是一个愚蠢的问题,如果它已经在这里得到解决,我道歉,但我搜索得相当多,没有太多运气.我正在尝试用C语言获取接口的硬件地址,而我正在使用OS X(x86-64).我知道如何使用它ifconfig,但我希望我的程序能够自动获取任何计算机,至少OS X计算机.我发现另一个帖子发布了这个链接,几乎可以做我想要的(经过一些修改),但是我不能把iokit函数链接进去ld(我的编译器是gcc).我尝试添加标志-lIOKit,并-framework IOKitgcc命令行,但我仍然得到同样的链接错误.这是我的代码的链接:标题来源.

c macos ethernet interface iokit

7
推荐指数
1
解决办法
3458
查看次数

StandBy喜欢活动

我想为我的设备创建一个StandBy活动,到目前为止,我创建了一个活动,在调用时将关闭我的显示.

代码如下:

public class MainActivity extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;

/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        // Get an instance of the SensorManager
        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

        // Get an instance of the PowerManager
        mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);

        // Get an instance of the WindowManager
        mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        mWindowManager.getDefaultDisplay();

        setContentView(R.layout.activity_main); …
Run Code Online (Sandbox Code Playgroud)

android ethernet wakelock screen-off

7
推荐指数
1
解决办法
458
查看次数