我已经在网上现在爬行约5小时,找不到我的问题的解决方案(防火墙和路由器后面):检查IP是在LAN
我公司正在开发的教育游戏我正在使用Monotorrent为它编写一个autoupdater。游戏将在学校中使用,但由于大多数学校只有非常薄弱的互联网连接,网络中只有一台计算机可以从httpseeder下载,而其他计算机应该从httpseed下载的一台计算机中汲取教训。
所以我从跟踪器中获取大量的IP地址,只需要过滤出局域网中的IP地址。
当然,学校有时对防火墙比较严格,学校里的一些计算机之间会有大量的路由器和交换机。
我已经尝试过大多数解决方案,像
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是否可以通过局域网访问。
我真的很感激任何帮助,因为这个功能是剩下的最后一个:)
包含游戏连接到您的互联网服务器的所有计算机? – Yahia
有限的IP地址允许内部使用私有子网。这不足以表明身份吗?使用公共IP地址然后对其进行防火墙是非常罕见的,因为您不想浪费IPv4地址。 IPv6是完全不同的问题。 – jishi
@jishi你假设学校的网络是根据建议设置的。虽然推荐使用私人范围,但是没有任何东西阻止您使用公共的范围。 –