V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
poorcai
V2EX  ›  问与答

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

  •  
  •   poorcai · 2017-11-15 16:25:34 +08:00 · 1940 次点击
    这是一个创建于 2564 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    需求截图如下:

    需求.png

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

    另外还需要小心有可能有些网关转发时会把源地址改成自己,最好排除默认网关。
    580a388da131
        3
    580a388da131  
       2017-11-15 18:02:59 +08:00
    既然是需要内网登录,那怎么进去的登录页面,不太理解。。。难道这个页面还和其它系统共享么?
    poorcai
        4
    poorcai  
    OP
       2017-11-15 19:12:51 +08:00 via iPhone
    @xomix @gamexg 感谢解惑
    poorcai
        5
    poorcai  
    OP
       2017-11-15 19:13:33 +08:00 via iPhone
    @580a388da131 公网的,不是说需要内网登录
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2653 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:59 · PVG 22:59 · LAX 06:59 · JFK 09:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.