日期:2014-05-17  浏览次数:20817 次

c# 竟然取不到正确的客户端IP。。PHP/百度都正确了!!
http://www.baidu.com/s?wd=ip
PHP
都取对了。

c#取成了其它值。一点都不搭边啊。怎么回事呢?


    private void GetIP(){
ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(ip == null || ip == "")ip = Request.ServerVariables["REMOTE_ADDR"];
if(ip == null || ip == "")ip = Request.UserHostAddress;
if(ip == null || ip == "")ip = "";
    }

------解决方案--------------------
ip=Request.ServerVariables["REMOTE_ADDR"];
这样正确不?

------解决方案--------------------
UserHostAddress 这个不就是取ip的吗?
------解决方案--------------------
引用:
就是不正确啊。 想不到net C#这么弱啊。


你打开百度或其他,读取到肯定是你外网的IP。
你在本机发布的程序,在本机通过内网IP访问肯定读取不到外网IP。
------解决方案--------------------
问题是你这个在哪里调用的?Request上下文是什么?
------解决方案--------------------
引用:
c#取成了其它值。一点都不搭边啊。怎么回事呢?

你贴出来看看。
------解决方案--------------------
你取到的是不是内网或者VPN的ip?
------解决方案--------------------
引用:
就是不正确啊。 想不到net C#这么弱啊。


-----------------
 不是C#弱,而是你自己弱到掉渣,很明显字符串有问题。
------解决方案--------------------
记有个含...Agent..的属性,不知有人知否?可以用一下。