【问题标题】:Python SOCK_RAW on MAC OS X YosemiteMAC OS X Yosemite 上的 Python SOCK_RAW
【发布时间】:2018-08-09 19:03:47
【问题描述】:
我正在尝试在 Mac 上用 Python 编写一个 snipper,但 Python 的 SOCK_RAW 在 MAC OS X Yosemite 上不起作用。我能做什么?
【问题讨论】:
标签:
python
python-2.7
python-3.x
jpcap
【解决方案1】:
您可以尝试使用这个 Python 库:rawsocketpy。它适用于 Linux Python2 和 Python3,但未在 MAC OSx 上验证。
#!/usr/bin/env python
from rawsocketpy import RawSocket
sock = RawSocket("wlp2s0", 0xEEFA)
sock.send("some data")
sock.send("personal data", dest="\xAA\xBB\xCC\xDD\xEE\xFF")
或服务器形式:
#!/usr/bin/env python
from rawsocketpy import RawRequestHandler, RawAsyncServerCallback
import time
def callback(handler, server):
print("Testing")
handler.setup()
handler.handle()
handler.finish()
class LongTaskTest(RawRequestHandler):
def handle(self):
time.sleep(1)
print(self.packet)
def finish(self):
print("End")
def setup(self):
print("Begin")
def main():
rs = RawAsyncServerCallback("wlp2s0", 0xEEFA, LongTaskTest, callback)
rs.spin()
if __name__ == '__main__':
main()
脚本需要超级用户权限。