Python 监听系统所有端口,获取指定组播信息

接收端

import msgpack
from scapy.all import *
from multiprocessing import Process

Multicast_IP = '239.255.255.252'
Multicast_Port = '9999'

def Callback(packet):
    load = packet['Raw'].load
    # 内置的show()函数打印数据包内容
    value = msgpack.loads(load)
    # print(value)


# 子进程执行的函数
def func(name):
    sniff(filter=f"udp and host {Multicast_IP} and port  {Multicast_Port}", iface=name, count=-1, prn=Callback)


if __name__ == '__main__':
    # 网卡列表
    port_list = ["WLAN", '以太网']
    pool = ThreadPoolExecutor(max_workers=len(port_list))
    for item in port_list:
        print(f"---------开始{item}网口------------")
        pool.submit(func, item)

发送端

import socket
import time

import msgpack

Multicast_IP = "239.255.255.252"
Multicast_Port = 9999


# 发送组播数据
def sendTo(message):
    # 创建UDP socket
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
    message = msgpack.dumps(message)
    sock.sendto(message, (Multicast_IP , Multicast_Port))

sendTo({"value":"测试数据!"})
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值