По сути, вам нужно создать необработанный сокет, получить дейтаграмму и проверить адрес назначения в заголовке. Если этот адрес является широковещательным адресом для сетевого адаптера, к которому привязан сокет, значит, у вас все в порядке.
Я не знаю, как это сделать в Python, поэтому я предлагаю поискать примеры необработанных сокетов и перейти оттуда. Помните, что для использования необработанных сокетов вам понадобится root-доступ, и вам лучше быть очень осторожным, если вы планируете отправлять сообщения с использованием необработанного сокета.
Как вы можете себе представить, это не будет забавным занятием. Я предлагаю попытаться найти способ избежать этого.