标签: ethernet

如何指定Django测试服务器应该监听哪个eth接口?

正如标题所说,在具有多个IP环境的多个以太网接口中,默认的Django测试服务器没有连接到我可以从我的PC访问的网络.有没有办法指定Django测试服务器应该使用的接口?

- 添加 -

网络配置在这里.我通过我的电脑上的143.248.xy地址连接到机器.(我的电脑也在143.248.ab网络.)但我找不到这个地址.正常的apache以及在其他端口上运行的其他自定义守护进程非常有效.

配置这台机器的人不是我,所以我不太了解网络的细节......

eth0      Link encap:Ethernet  HWaddr 00:15:17:88:97:78
          inet addr:192.168.6.100  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9778/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:441917680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:357190979 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:191664873035 (178.5 GB)  TX bytes:324846526526 (302.5 GB)

eth1      Link encap:Ethernet  HWaddr 00:15:17:88:97:79
          inet addr:172.10.1.100  Bcast:172.10.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9779/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1113794891 errors:0 dropped:97 overruns:0 frame:0
          TX packets:699821135 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 …
Run Code Online (Sandbox Code Playgroud)

python django networking ethernet

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

获取android以太网MAC地址(不是wifi接口)

我正在使用Api级别为8的Android,我想获得以太网接口的地址(eth0).

在API级别8上,NetworkInterface类没有getHardwareAddress()函数.WifiManager也不起作用,因为它不是无线接口.

提前致谢!

java android ethernet mac-address

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

低级以太网驱动程序读取phy层的位

是否可以从标准计算机以太网接口直接读取物理以太网连接接口上的位?

例如,假设我想将笔记本电脑的以太网插孔用作差分逻辑探头(使用标准以太网电缆).我是否可能只是编写一个驱动程序来获取位数,或者驱动程序可以达到的限制是否有限制?

基本上,物理层只是将比特流发送到设备驱动程序,或者它是否进行任何解码,这将影响比特的解释或导致设备故障(例如使用不同的编码方案).

我想它归结为,我们是否可以通过编写合适的驱动程序将以太网端口用作任何标准数字差分通信链路,或者我们是否仅限于ieee规范(8b/10b等等).

ethernet raw-ethernet

14
推荐指数
1
解决办法
657
查看次数

检测具有相同MAC地址的另一台主机

如何检测其他主机是否使用与当前主机相同的MAC地址,例如因为其他主机是欺骗?

我在嵌入式环境中工作,所以在协议级别寻找答案,而不是"使用这样的工具".

编辑:RARP并没有解决这个问题.对于RARP完全得到任何回复,该段上必须至少有一个主机支持RARP.由于RARP已经过时,现代操作系统不支持它.此外,所有RARP都可以告诉您自己的IP地址 - 如果该段上具有相同MAC的其他主机,则响应将不会有任何不同,除非该主机本身使用不同的IP地址.

networking ethernet

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

如何确定以太网II帧的长度?

以太网II帧格式不包含长度字段,我想了解如何在没有它的情况下检测帧的结尾.

不幸的是,我没有物理的想法,但下面听起来合理对我说:我们假设第1层(物理层)为我们提供了这样的方式传输原始比特的方式,有可能的情况下位区分正在发送和没有发送任何内容的情况(如果通过相位调制将数字数据编码为模拟信​​号,例如,这将是真的 - 但我不知道这是否真的是这样做的).在这种情况下,以太网卡可以简单地等待,直到一定的时间发生INTERVALL其中正在传输没有更多的比特,然后决定该帧传输,同时必须完成.

这真的发生了什么?

如果是的话:我在哪里可以找到这些东西,以及"特定时间间隔"长度的常见值是什么?为什么 IEEE 802.3的长度字段?

如果不是:它是如何完成的?

谢谢您的帮助!

汉诺

networking ethernet

12
推荐指数
1
解决办法
5870
查看次数

以太网CRC32计算 - 软件与算法结果

我正在尝试逐字节计算以太网数据包的帧校验序列(FCS).多项式是0x104C11DB7.我确实遵循了这里所见的XOR-SHIFT算法http://en.wikipedia.org/wiki/Cyclic_redundancy_checkhttp://www.woodmann.com/fravia/crctut1.htm

假设假定具有CRC的信息仅为一个字节.假设它是0x03.

  1. 步骤:向右打32位

    0x0300000000

  2. 将多项式和左侧的数据与它们的第一个非零和xor对齐

    0x300000000 xor 0x209823B6E = 0x109823b6e

  3. 取余数对齐和xor

    0x109823b6e xor 0x104C11DB7 = 0x0d4326d9

由于没有剩下的位,0x03的CRC32应该是 0x0d4326d9

不幸的是,所有的软件实现都告诉我我错了,但是我做错了什么或者他们做了什么不同的事情?

Python告诉我:

 "0x%08x" % binascii.crc32(chr(0x03))
 0x4b0bbe37
Run Code Online (Sandbox Code Playgroud)

这里的在线工具http://www.lammertbies.nl/comm/info/crc-calculation.html#intr获得了相同的结果.我的手计算与上述软件使用的算法有什么区别?

更新:

事实证明堆栈溢出已经存在类似的问题:

你在这里找到一个答案Python CRC-32的问题

虽然这不是很直观.如果您想要更正式地描述如何为以太网帧完成,您可以查看以太网标准文档802.3第3部分 - 第3.2.9章帧校验序列字段

让我们继续上面的例子:

  1. 反转邮件的位顺序.这代表了他们逐点进入接收器的方式.

    0x03 因此是 0xC0

  2. 补充邮件的前32位.请注意,我们再次使用32位填充单个字节.

    0xC000000000 xor 0xFFFFFFFF = 0x3FFFFFFF00

  3. 再次完成上面的Xor和shift方法.大约6步之后你得到:

    0x13822f2d

  4. 然后补充上述比特序列.

    0x13822f2d xor 0xFFFFFFFF = 0xec7dd0d2

  5. 请记住,我们颠倒了位顺序,以便在第一步中获得以太网线上的表示.现在我们必须扭转这一步,我们终于完成了我们的任务.

    0x4b0bbe37

想出这种做法的人应该......

很多时候你真的想知道你收到的信息是正确的.为了达到这个目的,您可以收到包括FCS在内的收到的消息,并执行与上述相同的步骤1到5.结果应该是他们所谓的残留物.这是给定多项式的常数.在这种情况下它是0xC704DD7B.

正如mcdowella所提到的那样,你必须玩弄你的位,直到你做对了,这取决于你正在使用的应用程序.

python algorithm crc32 ethernet

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

为什么在Mac OS X上将Wi-Fi称为en0,就像以太网一样?

Linux多年来一直是我的主要系统.在Linux中,以太网硬件设备名称类似eth0enp1s0(后者我只看到Arch Linux的).无线网卡的名称一直都是wlan0或者wlp2s0(后者在Arch上).在我的新MacBook Air上,分配了无线网络en0,我读过它代表以太网.此外,即使我没有以太网端口,也有一个en1.这个命名约定是什么意思?

macos networking wireless ethernet ifconfig

11
推荐指数
1
解决办法
9804
查看次数

如何通过pcap_sendpacket发送大于1500字节的数据包?

实际上,我有两个相关的问题.

我在Debian上通过libpcap捕获过滤后的网络流量.然后我需要在Win2k3服务器上重放此流量.有时我捕获TCP和UDP的数据包,远远大于1500字节(以太网的默认MTU大小).例如,2000多个字节.我没有对Linux上的MTU大小进行任何具体更改.问题#1:

这些数据包远大于默认MTU的原因是什么? 巨型帧?这篇维基百科的文章指出"能够使用巨型帧的网络接口卡需要显式配置才能使用巨型帧",但我不知道任何这样的配置.还ifconfig告诉我"MTU:1500".可以将其与"中断结合"技术(或"中断合并"在以某种方式相关文章)?我能压抑这样的包裹吗?

那么,问题#2:

如何pcap_sendpacket在Windows上发送此类数据包?我收到错误消息"发送错误:PacketSendPacket失败"仅适用于大于1500字节的数据包.似乎我不能使用巨型帧因为我将数据发送到直接连接的自定义"net tap",如pci卡,我不确定我可以配置它的NIC.还有什么?我应该根据协议规则对这些数据包进行分段吗?

编辑:

由Guy Harris建议,由NIC检查碎片:

~# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off
ntuple-filters: off
receive-hashing: off
Run Code Online (Sandbox Code Playgroud)

同样的- eth1br0- 我之间的网络桥梁eth0eth1我正在嗅探.

我仍然收到大量的UDP数据包.

networking network-programming ethernet pcap

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

通过以太网的 ADB

我有一个 Android 设备,我想使用 ADB 连接到它。由于这里不重要的原因,我需要它有以太网连接,而不是wifi。设备本身拒绝同时拥有以太网和 WiFi 连接。

我一直在使用一个名为ADB WiFi的第三方应用程序,当它处于WiFi模式时,用ADB连接它,我发现我可以在wifi下连接它,然后将设备切换到以太网,然后重新连接到新的IP,并且有效。

我非常希望能够连接到我的设备(通常是远程且难以到达),而无需先将其切换到 wifi 并返回,为此我编写了自己的小应用程序,它使用 SU 并执行以下操作:

setprop service.adb.tcp.port 5555
stop adbd
start adbd
Run Code Online (Sandbox Code Playgroud)

它说当我运行它时它正在工作并且没有产生错误消息,但之后我无法连接。它在 wifi 模式下也不起作用。使用第 3 方应用程序设置连接后,我可以使用 stop adbd 来阻止 adb 工作,并且我可以使用上面的应用程序再次启用它,无需 wifi 或第 3 方干预,这表明它正在做它应该做的事情认为它正在做,但错过了一步。

有谁知道是否还必须设置/启用/戳其他东西才能使 adbd 工作?有谁知道我错过了什么?

谢谢

android ethernet adb

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

AF_PACKET 和以太网

我对AF_PACKET套接字系列(用于SOCK_RAW套接字)与以太网(IEEE 802.3)的具体关系感到非常困惑。

到目前为止我的理解:

  • 我了解 OSI 模型,以及以太网等第 2 层技术如何融入该模型。

  • 我知道AF_PACKET可以与SOCK_RAW套接字一起使用来接收包含 14 字节以太网标头的数据报,然后是其他一些更高层协议标头,例如 IPv4、IPv6 等,然后是可选的传输层协议,如TCP,最后是有效载荷。

  • 我知道您可以传递诸如ETH_P_ALLETH_P_IP作为协议参数的标志socket来为您提供内核过滤数据包,只需向您发送包含某种类型标头的数据包。

  • 我知道使用该AF_PACKET系列创建的套接字可以接收或发送到类型为 的端点sockaddr_ll,该端点与特定的 MAC 地址(EUI-48 地址)以及特定的网络接口(例如eth0或其他)相关联。

我不明白的是:

  • 我不明白是否AF_PACKET应该专门用于以太网设备,而不是其他第 2 层技术,例如 Wifi、蓝牙、令牌环、Infiniband 等。

  • 我不明白以太网设备与使用 14 字节以太网标头的第 2 层协议之间的关系。以太网报头是 14 字节,可以定义为:struct eth_hdr { char dest_address[6]; char source_address[6]; uint16_t ethertype; }; 换句话说,这个报头是否只用于物理以太网设备?似乎答案是否定的,因为如果我AF_PACKET在环回接口上使用,我仍然会收到包含 14 字节以太网标头的数据包。但环回不是以太网设备。那么为什么它会收到包含以太网报头的数据包呢?

  • 如果 …

c sockets linux networking ethernet

9
推荐指数
1
解决办法
6611
查看次数