为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NET MVC中获取客户端的IP地址?

如何在ASP.NET MVC中获取客户端的IP地址?

呼啦一阵风 2019-11-05 10:57:15
我是ASP.NET MVC堆栈的新手,我想知道简单的Page对象和Request ServerVariables对象发生了什么?基本上,我想拉出客户端PC的IP地址,但是我无法理解当前的MVC结构如何改变了所有这些。据我了解,大多数变量对象已被HttpRequest变体替换。有人愿意分享一些资源吗?在ASP.NET MVC世界中确实有很多东西可以学习。:)例如,我有一个带有当前函数的静态类。使用ASP.NET MVC如何获得相同的结果?public static int getCountry(Page page){    return getCountryFromIP(getIPAddress(page));}public static string getIPAddress(Page page){    string szRemoteAddr = page.Request.ServerVariables["REMOTE_ADDR"];    string szXForwardedFor = page.Request.ServerVariables["X_FORWARDED_FOR"];    string szIP = "";    if (szXForwardedFor == null)    {        szIP = szRemoteAddr;    }    else    {        szIP = szXForwardedFor;        if (szIP.IndexOf(",") > 0)        {            string [] arIPs = szIP.Split(',');            foreach (string item in arIPs)            {                if (!isPrivateIP(item))                {                    return item;                }            }        }    }    return szIP;}以及如何从控制器页面调用此函数?
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

Request.ServerVariables["REMOTE_ADDR"] 应该可以工作-直接在视图中或在控制器操作方法主体中(请求是MVC中Controller类的属性,而不是Page中的属性)。


它正在工作..但是您必须在真正的IIS而不是虚拟IIS上发布。


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 843 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信