Hello, im having a problem, i need to make a software which check a range of Ips and get each of the mac addresses from every modem connected to the network, i really need help with this please if someone can help me, i was reading and i just can make a ping

but when i try to get more info, i cant, this is what i have:

Code Csharp:
private void scanear_Click(object sender, EventArgs e)
        {
            statuslabel.Text = "Procesando, por favor espere, el proceso puede durar varios minutos";
            lista.Items.Clear();
 
            progressbar.Value = 0;
            int ipInicio = Int32.Parse(rango1IP4.Text);
            int ipFin = Int32.Parse(rang2IP4.Text);
 
            string mainHost = rang2IP1.Text + "." + rang2IP2.Text + "." + rang2IP3.Text + ".";
            Ping ping = new Ping();
            PingReply pingreply = null;
            progressbar.Maximum = ipFin - ipInicio;
 
            for (int i = ipInicio; i <= ipFin; i++)
            {
                lista.BeginUpdate();
                lista.SuspendLayout();
                try
                {
 
                    pingreply = ping.Send(mainHost + i.ToString(),120);
 
 
                    if (pingreply.Status == IPStatus.Success)
                    {
 
                        //ListViewItem item = new ListViewItem(mainHost + i.ToString());
                        ListViewItem item = new ListViewItem(Dns.GetHostEntry(pingreply.Address).ToString());
                        item.SubItems.Add(pingreply.Address.ToString());
 
                        lista.Items.Add(item);
 
                    }
                }
                catch (Exception ee)
                {
 
                }
                finally
                {
                    progressbar.Increment(1);
                    lista.ResumeLayout();
                    lista.EndUpdate();
                }
            }
            statuslabel.Text = "Proceso de escaneo finalizado.";
        }