发送免费 ARP 消息

waf*_*man 6 c linux networking

我正在寻找一种在 Linux 用户空间应用程序中以编程方式(在 C 中)发送免费 ARP 消息的方法。我注意到在 procfs 中有一些用于配置 ARP 的文件

/proc/sys/net/ipv4/conf/<interface_name> 
Run Code Online (Sandbox Code Playgroud)

有没有办法通过对相应网络接口的 ioctl 调用来做到这一点?

San*_*nta 4

使用scapy

from scapy.all import *

SELF_MAC = '02:02:02:02:02:02'    # fill in with your MAC address
BCAST_MAC = 'ff:ff:ff:ff:ff:ff'

def create_ARP_request_gratuituous(ipaddr_to_broadcast):
    arp = ARP(psrc=ipaddr_to_broadcast,
              hwsrc=SELF_MAC,
              pdst=ipaddr_to_broadcast)
    return Ether(dst=BCAST_MAC) / arp

# and then call sendp() with the result
Run Code Online (Sandbox Code Playgroud)

  • 为什么要加引号?C是一种语言。 (2认同)