寻找高手解决ASP.NET中获取客户端的内网IP方法。
也就是获取客户端自己设置的本地IP地址。如:192.168.1.8等。并不是外网的IP地址。
在线等。谢谢! --------------------编程问答-------------------- 路过~~~ --------------------编程问答-------------------- 谁是高手,请进来哦 --------------------编程问答-------------------- private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
} --------------------编程问答--------------------
--------------------编程问答-------------------- JS获取(会被正常IE设置拦截) 或者 自己写OCX控件获取(相当啰嗦 对大多数网站不实用) 或者 打消这个念头!
private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
JS获取客户端IP
PS:理由是 高层服务和TCP/IP等底层协议无关,当数据传送过每一节点时,本节点底层数据替换上一节点的!IP地址也是 因为内网的数据要到公网必定经过网关 所以网关的IP一定会替换你本机的! --------------------编程问答-------------------- 测试中。。。 --------------------编程问答-------------------- JS一般都不会让你运行了。只有自己写OCX,这个只能这么弄的。 --------------------编程问答-------------------- //获取客户端 IP
_Ip = Request.ServerVariables["REMOTE_ADDR"].ToString(); --------------------编程问答-------------------- 此法行不通 --------------------编程问答-------------------- JS的会阻挡
--------------------编程问答-------------------- 我需要的是客户端内网的IP。
OCX控件还不会写,还请指点 --------------------编程问答-------------------- 你用什么获取啊 是脚本还是什么啊 --------------------编程问答-------------------- 我想要有一个完整的代码
能够用于ASP.NET的
只要能够实现就行 --------------------编程问答-------------------- OCX 我有 怕你也用不了!因为他需要数字签名才能被下载!数字签名需要到认证机构去认证 每年都要交 好多$!不适用一般网站 我说的三个方法你看来理解了第一个了 现在换第二个 一般情况下 还会考虑第三个的 !
我有个测试的OCX
你可以试试效果 这个OCX是C++写的得到MAC地址的!
必须先下载安装控件才能运行
点击按钮后看C盘 有个DYSDN的TXT文件 然后里面就是你的第一个MAC地址!
先打开 www.dysdn.cn 顺便赠送我个IP呵呵
然后输入1.htm 也就是 http://www.dysdn.cn/1.htm --------------------编程问答-------------------- 你不如说说你的具体需求 说不定还有曲线救国的方案 --------------------编程问答--------------------
Page.Request.UserHostAddress好像就行啊 --------------------编程问答-------------------- string ipaddress = Request.UserHostAddress; --------------------编程问答-------------------- 我也想解决这个问题,搜了好多方法都不理想,自己想了一个办法。
假设服务器内网ip:192.168.1.6
你公司公网ip:60.11.9.24
所有内网用户访问都会留下公网IP:60.11.9.24。
在网站首页判断如来访IP为60.11.9.24,则将网站转向192.168.1.6的内网访问。这样就可以记录到内网机器IP了。 --------------------编程问答-------------------- 此方法要求服务器和内网机器在一个局域网内
补充:.NET技术 , ASP.NET