Discover hosts on LAN for onboarding

Problem:
I want to discover all hosts on a network, we have Mac Windows & linux hosts.
I have created host groups which align with these machines however I believe I need to run a script to discover them - Can anyone pint me toward a simple step by step guide to actually discovering hosts, I don’t want to provision the machines just onboard them so they can be managed for patching software & updates.

Any help very gratefully received

Foreman and Proxy versions:
latest

Foreman and Proxy plugin versions:
Base ones

Distribution and version:
centos 7

Other relevant data:
Our VMware stuff literally just pops in and we can choose to onboard each VM - I was looking for similar functionality with bare metal servers.