python arp_在python上发出ARP请求

我试图在python上发出ARP请求。我的代码:import socket

from struct import pack

from uuid import getnode as get_mac

def main():

dest_ip = [10, 7, 31, 99]

local_mac = [int(("%x" % get_mac())[i:i+2], 16) for i in range(0, 12, 2)]

local_ip = [int(x) for x in socket.gethostbyname(socket.gethostname()).split('.')]

sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.SOCK_RAW)

sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

sock.bind(('', 0))

ARP_FRAME = [

pack('!H', 0x0001), # HRD

pack('!H', 0x0800), # PRO

pack('!B', 0x06), # HLN

pack('!B', 0x04), # PLN

pack('!H', 0x0001), # OP

pack('!6B', *local_mac), # SHA

pack('!4B', *local_ip), # SPA

pack('!6B', *(0x00,)*6), # THA

pack('!4B', *dest_ip), # TPA

]

print(ARP_FRAME)

sock.sendto(b''.join(ARP_FRAME), ('255.255.255.255', 0))

sock.close()

if __name__ == "__main__":

main()

当我执行此代码时,Wireshark不会捕获任何数据包。

我觉得插座有问题。当我做socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.SOCK_RAW)时,我得到AttributeError: module 'socket' has no attribute 'AF_PACKET'。我做错了什么?怎么解决?

苹果操作系统10.11.3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值