private static IEnumerable<IPAddress> GetBroadcastAddresses() {
var ignored = SettingsHolder.Online.IgnoredInterfaces.ToList();
var interfaces = NetworkInterface.GetAllNetworkInterfaces().Where(x => !ignored.Contains(x.Id)).ToList();
return from address in Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork)
let mask = interfaces.SelectMany(x => x.GetIPProperties().UnicastAddresses)
.FirstOrDefault(x => x.Address.AddressFamily == AddressFamily.InterNetwork && Equals(x.Address, address))?.IPv4Mask
where mask != null
select address.GetBroadcastAddress(mask);
}