问题标签 [raw-sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
5806 浏览

linux - 如何丢弃原始套接字中的传入数据包?

我正在 Linux 下编写一个 C/C++ 应用程序,它从原始套接字(用于 ICMP 数据包)读取数据。问题:有没有办法丢弃仍在套接字上排队的所有数据?

问题是睡了一会儿后,socket上有我不感兴趣的数据排队;所以最好只是告诉套接字“忘记你现在缓冲的所有数据”,这样如果我进入一个 select()/recvfrom() 循环,我只会得到最近收到的数据。

有没有比先进入单独的 poll()/recvfrom() 循环更好的方法?可能是一些套接字 API 调用?便携,甚至?:-)

0 投票
3 回答
5521 浏览

android - How to create Raw socket in Android?

Has anybody tried creating RawSocket in Android and have succeeded ?

0 投票
2 回答
700 浏览

networking - C# - Windows XP SP III 中的用户态 TCP 堆栈

我正在尝试创建一个应用程序来制作数据包,以便能够在此处调试某些网关,并尝试 TCP DoS 情况。尽管如此,这应该很容易,我没有找到一种方法来为 Windows 应用程序实现它。

我开始在 Unix 机器上使用Python 中 Core Security 的Impacket,但我现在想避免这种情况。首先,Impacket 不适用于 Windows,而且它似乎并没有完全符合我的要求。

有谁知道如何在 Windows 中获得类似原始套接字的简单行为?我知道不再有原始套接字了。但是有没有类似的东西?我可以使用的任何 C# 库......我没有找到任何东西。

谢谢 ;)

0 投票
2 回答
3125 浏览

c - 原始套接字不发送

我正在尝试编写一个示例原始套接字程序来清除我对原始套接字的理解。我创建了一个原始 UDP 套接字,然后调用 sendto。我的 sendto 成功了,但我从来没有看到对方收到的数据包。我没有运行任何接收端,因此我依赖于在发送方和接收方上运行的 Wireshark。我在这里粘贴代码片段。请指出任何错误。

IP 和 UDP 标头是:

我以 root 用户身份运行,所以权限不是问题。

语言:C

操作系统:Linux

0 投票
8 回答
106332 浏览

python - 如何在 Python 中使用原始套接字?

我正在编写一个应用程序来测试用于处理损坏数据的网络驱动程序。而且我想使用原始套接字发送这些数据,因此发送机器的 TCP-IP 堆栈不会更正它。

我仅在 Linux 上编写此应用程序。我有在系统调用中使用原始套接字的代码示例,但我真的很想保持我的测试尽可能动态,并用 Python 编写大部分(如果不是全部)。

我在网上搜索了一些关于在 python 中使用原始套接字的解释和示例,但没有发现任何真正有启发性的东西。只是一个非常古老的代码示例,它演示了这个想法,但绝不可行。

从我收集到的信息来看,Python 中的 Raw Socket 使用在语义上与 UNIX 的原始套接字几乎相同,但没有struct定义数据包结构的 s。

我想知道是否最好不要在 Python 中编写测试的原始套接字部分,而是在带有系统调用的 C 中编写,然后从主要的 Python 代码中调用它?

0 投票
1 回答
1247 浏览

linux - 在 Linux 上的 Raw Socket 编程中,如何防止底层操作系统响应传入的数据包?

我在 Linux 中使用原始套接字发送 SYN 数据包。响应(SYN+ACK)正在被操作系统拦截,并以 RST 响应。我想阻止操作系统拦截这个数据包,让它由我的应用程序处理。我怎样才能做到这一点?

0 投票
1 回答
5155 浏览

linux - 在 AF_PACKET 套接字上发送数据

如何在 SOCK_PACKET 套接字上发送数据而不指定它绑定到哪个主机?我已经构建了 IP 标头以显示它应该去哪里,但是 write() 不起作用。

0 投票
4 回答
13011 浏览

c - 混杂模式下的数据包套接字仅接收本地流量

我有一个使用 创建的套接字socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)),并使用以下方法将其设置为混杂模式:

问题是当我read()从套接字执行时,它只返回来自或来自我的计算机的数据。

如何让它读取和处理网络上的所有数据包?

Wireshark 显示所有数据包都很好,所以我知道它不是我的计算机或 NIC。ifconfig报告它PROMISC在运行时。

0 投票
3 回答
4933 浏览

ruby - 如何在 Ruby 中使用 RAW 套接字?

我正在尝试使用 Ruby 创建一个原始套接字。

问题是,那里没有任何称为“原始套接字”的东西,另一方面,Socket 类本身没有完整记录。

有没有人有一些Ruby中那种套接字的代码示例,或者可能有一些文档?

顺便说一句,我已经知道如何使用 TCPSocket 和 TCPServer 类,我特别需要一个原始套接字。

0 投票
5 回答
8431 浏览

python - Python TCP栈实现

是否有实现独立 TCP 堆栈的 python 库?

我不能使用通常的 python 套接字库,因为我正在通过套接字接收数据包流(它们通过这个套接字通过隧道传送给我)。当我收到发往特定端口的 TCP SYN 数据包时,我想接受连接(发送 syn-ack),然后获取另一端发送的数据(适当地确认)。

我希望已经编写了某种我可以使用的 TCP 堆栈。有任何想法吗?我过去曾在 C 项目中使用过 lwip——在 python 中类似的东西会是完美的。