For anyone who comes across this thread here is a new way that is faster than a scalded cat. hard coded ip for POC.
private async Task<List<PingReply>> PingAsync()
{
List<string> theListOfIPs = new List<string>();
for (int i = 1; i != 255; i++)
{
theListOfIPs.Add("192.168.1." + i);
}
var tasks = theListOfIPs.Select(ip => new Ping().SendPingAsync(ip, 2000));
var results = await Task.WhenAll(tasks);
return results.ToList();
}