如何判断当前访问系统的用户,是否与系统在同一个内网

2017-11-15 16:25:34 +08:00
 poorcai

C#新手,最近遇到一个需求,就是如何判断访问系统的用户的所处环境,是系统的内网?

我能想到的是判断当前用户的 IP,与系统服务器的 IP 进行对比,但是也不知道怎么做,网上搜的东西好像也没什么用。所以还请各位老哥老姐给点指导,多谢了。

需求截图如下:

1948 次点击
所在节点    问与答
5 条回复
xomix
2017-11-15 16:46:23 +08:00
内网外网两个 dns,两个域名,根据过来的域名判断即可。
gamexg
2017-11-15 16:47:57 +08:00
同一子网还是?
同一子网直接查询服务器 ip+子网掩码,然后 服务器 ip & 掩码 获得服务器网络地址,客户 ip & 掩码得到客户网络地址,一致表示在同一子网。
但是如果存在多个内网,这样就判断不出来了,另一方案:、。
直接判断客户地址是不是保留地址就能确定是不是内网。

另外还需要小心有可能有些网关转发时会把源地址改成自己,最好排除默认网关。
580a388da131
2017-11-15 18:02:59 +08:00
既然是需要内网登录,那怎么进去的登录页面,不太理解。。。难道这个页面还和其它系统共享么?
poorcai
2017-11-15 19:12:51 +08:00
@xomix @gamexg 感谢解惑
poorcai
2017-11-15 19:13:33 +08:00
@580a388da131 公网的,不是说需要内网登录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406644

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX