While that gives you a result it may not be just addresses that have been handed
out by your dhcp server; clients could have hard-coded IPs that happen to match
your subnet/netmask, and you'd see them in your arp table irrespective of how
they acquired those IPs.
Depending on which dhcp server daemon/process you're using you should be able
to parse current leases out from its log-/status files.
For the isc dhcp-server look at dhcp.leases.