PHP, вероятно, не лучший язык для этого, так как PHP в основном предназначен для запуска всякий раз, когда клиент делает запрос.
Я полагаю, что вам нужно напрямую взаимодействовать с ОС, чтобы Сделайте это для захвата сетевого трафика c на указанных c портах, что также не является сильным сторонником PHP.
Затем можно попытаться проверить входящую полезную нагрузку и определить, является ли она сканером портов. , Или вы можете вести журнал, чтобы подсчитать общее количество различных портов, к которым подключен один компьютер, и заблокировать их на этом основании.