I suggest starting two terminals, one for monitoring and another for sending a request. Terminal1 will show responses from all existing DHCP servers including MAC address. This example was run on Ubuntu:
Terminal1 (for monitoring):
sudo tcpdump -nelt udp port 68 | grep -i "boot.*reply"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes 20:a6:80:f9:12:2f > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 332: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 290 00:23:cd:c3:83:8a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 590: 192.168.1.253.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 548
Terminal2 (for sending a request):
sudo nmap --script broadcast-dhcp-discover -e eth0
Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-13 21:21 EEST Pre-scan script results: | broadcast-dhcp-discover: | Response 1 of 1: | IP Offered: 192.168.1.228 | DHCP Message Type: DHCPOFFER | IP Address Lease Time: 2h00m00s | Server Identifier: 192.168.1.1 | Subnet Mask: 255.255.255.0 | Router: 192.168.1.1 |_ Domain Name Server: 8.8.8.8, 8.8.4.4 WARNING: No targets were specified, so 0 hosts scanned. Nmap done: 0 IP addresses (0 hosts up) scanned in 0.94 seconds
That monitoring terminal is needed just to see all responses (nmap is able to show only the first response).