C# 如何知道客户端在asp.net页面上与服务器处于同一网络中?

C# 如何知道客户端在asp.net页面上与服务器处于同一网络中?,c#,asp.net,networking,C#,Asp.net,Networking,它有一个web服务器和一个网站。 它的内部IP为192.168.2.10 它的外部ip是77.xxx.xxx.xxx 客户端A:此客户端位于服务器的同一网络中,其本地ip为192.168.2.11 **客户端B:这一个在网络之外,它的外部ip是**195.xxx.xxx.xxx 客户端A和客户端B都可以连接网站。客户端A通过服务器的内部ip连接网站。客户端B通过服务器的外部ip连接网站 我如何知道客户在本地区或外地 执行此操作,获得如下IP地址: String ipAddress = Syste

它有一个web服务器和一个网站。 它的内部IP为192.168.2.10 它的外部ip是77.xxx.xxx.xxx

客户端A:此客户端位于服务器的同一网络中,其本地ip为192.168.2.11 **客户端B:这一个在网络之外,它的外部ip是**195.xxx.xxx.xxx

客户端A客户端B都可以连接网站。客户端A通过服务器的内部ip连接网站。客户端B通过服务器的外部ip连接网站


我如何知道客户在本地区或外地

执行此操作,获得如下IP地址:

String ipAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
然后做一个这样的检查

if (ipAddress == "192.168.2.11")
{
//user is within network
}
else
{
//user is external
}

如果需要,只需修改上面的代码,检查192.168.2.xxx范围内的任何人。

ip地址”是示例,它们是动态的。主要问题是我如何知道客户是在内部还是外部?Ip地址可以是不同的,许多客户端可以是内部的,也可以是外部的。这很简单,只要得到服务器的Ip,进行比较,然后你仍然会发现它是否是本地的。因此,重述一下“192.168.2.11”而不是硬编码,而是用服务器IP范围替换它。例如:服务器IP为192.168.1.1,子字符串位于第三个全站,因此最终只有192.168.1-然后对客户端IP执行相同操作,并比较2。客户端B可以具有相同的本地IP范围,尽管它在网络之外。现在我明白了,试试这个…获取服务器的本地IP,然后客户端ip使用:protectedvoid GetUser_ip(){string VisitorsIPAddr=string.Empty;if(HttpContext.Current.Request.ServerVariables[“HTTP_X_FORWARDED_FOR”]!=null){VisitorsIPAddr=HttpContext.Current.Request.ServerVariables[“HTTP_X_FORWARDED_FOR”].ToString()}否则if(HttpContext.Current.Request.UserHostAddress.Length!=0){VisitorsIPAddr=HttpContext.Current.Request.UserHostAddress;}//VisitorsIPAddr;}然后比较服务器本地IP和访问者IP范围如果通过“外部”路由,上述代码将为您提供服务提供商提供的客户端的公共IP…如果提供的公共IP与服务器本地IP不在同一范围内,则其在网络外,否则其在内部执行。