gpt4 book ai didi

python - 属性错误 : module 'socket' has no attribute 'AF_PACKET'

转载 作者:太空狗 更新时间:2023-10-30 02:28:01 28 4
gpt4 key购买 nike

我正在使用 Python 构建数据包嗅探程序,但是我遇到了减速带。出于某种原因,我认为套接字没有正确导入,因为我在程序运行时收到以下消息:AttributeError: module 'socket' has no attribute 'AF_PACKET'

我使用的是 OS X,Pycharm 是我的 IDE,如果有帮助,我正在运行最新版本的 Python。

无论如何,这是我到目前为止的完整程序:

import struct
import textwrap
import socket

def main():
connection = socket.socket(socket.AF_PACKET, socket.SOCKET_RAW, socket.ntohs(3))

while True:
rawData, address = connection.recvfrom(65535)
reciever_mac, sender_mac, ethernetProtocol, data = ethernet_frame(rawData)
print('\nEthernet Frame: ')
print('Destination: {}, Source: {}, Protocol: {}'.format(reciever_mac, sender_mac, ethernetProtocol))

# Unpack ethernet frame
def ethernet_frame(data):
reciever_mac, sender_mac, protocol = struct.unpack('! 6s 6s H', data[:14])
return getMacAddress(reciever_mac), getMacAddress(sender_mac), socket.htons(socket), data[14:]

# Convert the Mac address from the jumbled up form from above into human readable format
def getMacAddress(bytesAddress):
bytesString = map('{:02x}'.format, bytesAddress)
macAddress = ':'.join(bytesString).upper()
return macAddress

main()

提前感谢您的帮助!

最佳答案

实际上,AF_PACKET 不适用于 OS X,它适用于 Linux。

AF_PACKET equivalent under Mac OS X (Darwin)

关于python - 属性错误 : module 'socket' has no attribute 'AF_PACKET' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com