Питон не может пожаловаться на недостаток модулей для исследования состояния портов.
Вот названия только трёх модулей:
На различных сайтах, где тусуются прАгрАмЫсты (stackoverflow.com, pastebin.com, github.com) ты сможешь найти огромное количество примеров кода и информации о том, как пользоваться этими модулями.
Кроме знания и умения применять эти модули тебе потребуется знание других модулей, например для многопоточного сканироания потрубуются:
from threading import *
from concurrent.futures import ThreadPoolExecutor
Но это - не всё.
Одним из привлекательных решений является применение модуля subprocess:
from subprocess import check_call
При помощи этого модуля ты попросту сможешь подключить в свой скрипт установленную в систему программу nmap (не зависящую от модулей питона ) и пользоваться результами сканирования nmap, экспортировав в свой python-скрипт.