python 在 osx 下发送原生数据包问题

2015-09-23 01:18:22 +08:00
 302790951

这是代码,只能在 linux 下运行,因为 osx 不支持 PF_PACKET ,只能用 AF_INET,记得以前用 AF_INET 发过原生数据,后悔当时没有记录代码。

求问在 osx 下如何发送原生数据包!万分感谢!!

!/usr/bin/python

import socket
rawSocket=socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x0800))

rawSocket.bind(("eth0",socket.htons(0x0800)))

packet='\x01\x0c\x29\x29\x4d\x89\x00\x50\x56\xc0\x00\x08\x08\x00\x45\x00\x00\x54\xcb\xab\x40\x00\x40\x01\x0b\x2b\xcc\xa8\x71\x01\xc0\xa8\x71\x80\x00\x00\x08\xa6\x0a\xb3\x00\x04\x41\x51\xf9\x55\xbc\xf8\x0a\x00\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37'

rawSocket.send(packet)

2230 次点击
所在节点    问与答
2 条回复
TheCure
2015-09-23 01:45:00 +08:00
OS X 的 raw socket 有问题,我以前在写一些 SYN 扫描的脚本时候遇到过
FreeBSD takes another approach. It *never* passes TCP or UDP packets to raw
sockets.
不确定是否能解决你的问题
302790951
2015-09-23 09:21:21 +08:00
@callofmx 说了一些明白了,但是没看到解决方法啊…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/222945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX