繁体   English   中英

如何找出PC现在连接哪个网络

[英]How to findout which network the PC is connected now

我正在用C#编写应用程序,其中一项功能需要根据连接的网络执行不同的操作。

例如; 当PC连接到家庭网络电缆时,执行方法A;当PC连接到家庭网络,但通过Wifi上网时,则执行MethodB;当PC连接到建筑物1上的Office网络时,则执行MethodC;当PC连接到建筑物2上的Office网络时,则执行MethodC。家庭网络执行MethodE

在这里,我如何区分不同的网络?

我会使用有关网络的一些信息来解决这个问题。 如果您使用的是无线网络,您会知道有线网卡没有IP。 然后,基于IP方案,您可以推断出您所在的位置。 您将必须了解有关网络的一些信息。

例如,如果您的工作为您分配了子网范围10.1.0.1-40的IP,而您的家庭网络为您提供了192.168.1.2-255则您可以使用该信息来指示应用程序的工作方式。

不幸的是,这是一个非常松散的耦合,如果路由方案更改,则您的应用程序可能会中断。 我将使这种设置可配置,在其中创建一个将ip方案映射到“位置”的配置,然后将其用作您所做工作的基础。

如果您将网络映射到Windows中的位置,则可以使用此问题中的答案来帮助我如何确定.NET中的“网络位置”?

我相信您可以可靠地检测机器是否通过无线或电缆连接到本地路由器。

但是,走得更远,我认为您会遇到很多问题。

如果它们在Vista或更高版本上,则应该能够获得正在使用的网络的“名称”。 但是,这必须正确配置且最终用户不要随便携带。

除此以外,您当然可以检查分配给您的ip地址范围...但是,假设建筑物1和2发出不同的范围,并且这些范围与家庭网络发出的范围不同。 此外,家庭网络和朋友之家网络完全有可能在同一内部范围内。

我想说,您的应用程序最好问用户要使用哪种方法,或者给他们提供方法的名称,或者问其他类型的问题来提示您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM