Scantron is a distributed nmap and masscan scanner comprised of two components. The first is a Master node that consists of a web front end used for scheduling scans and storing nmap/masscan scan targets and results. The second component is an agent that pulls scan jobs from Master and conducts the actual nmap/masscan scanning. A majority of the application's logic is purposely placed on Master to make the agent(s) as "dumb" as possible. All nmap/masscan target files and nmap/masscan results reside on Master and are shared through a network file share (NFS) leveraging SSH tunnels. The agents call back to Master periodically using a REST API to check for scan tasks and provide scan status updates.<p>There is also a Python client for interacting with the Scantron API and driving automated workflows.