Ровя се в мрежата от около 5 часа и не можах да намеря решение на проблема си:
Моята компания разработва образователна игра и аз пиша програма за автоматично актуализиране за нея с помощта на Monotorrent. Играта ще се използва в училищата, но тъй като повечето училища имат само много слаби интернет връзки, трябва да има само един компютър в мрежата, който изтегля от httpseeder, а останалите трябва да пият от единия компютър, който изтегля от httpseed.
Така че получавам купища IP адреси от тракера и трябва да филтрирам само тези, които са в LAN.
Разбира се, училищата понякога са доста строги със защитните стени и ще има много рутери и суичове между някои компютри в училище.
Вече опитах повечето решения, неща като
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface iface in interfaces)
{
IPInterfaceProperties properties = iface.GetIPProperties();
foreach (UnicastIPAddressInformation address in properties.UnicastAddresses)
{
Console.WriteLine(
"{0} (Mask: {1})",
address.Address,
address.IPv4Mask
);
}
}
Или подобни техники доставят само информацията на рутера/суича/каквото и да е.
И така, накратко, това, което искам да направя, е да проверя дали даден IP е достъпен през LAN.
Наистина ще се радвам на всяка помощ, защото тази функция е последната останала :)