2012-07-04 58 views
0

我需要让我的网站的本地计算机的IP地址访问用户的,我用下面的代码得到服务提供商的IP地址设备的IP地址

string ipAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
       if (!string.IsNullOrEmpty(ipAddress)) 
       { 
        string[] addresses = ipAddress.Split(','); 

        if (addresses.Length != 0) 
        { 
         stradd = addresses[0]; 
        } 
        else 
        { 
         stradd = ipAddress; 
        } 
       } 
       else 
       { 
        stradd = Request.ServerVariables["REMOTE_ADDR"].ToString(); 
       } 

       hostName = Dns.GetHostByAddress(stradd).HostName; 

这是给服务提供商&名的IP地址的服务提供商,但我不想这个我想用户设备(本地)的IP地址,是否有可能获得本地IP地址?请帮帮我。

+0

敦认为可以工作 –

回答

1

不能。您无法获取隐藏在NAT后面的机器的私有IP地址。

路由器透传中继请求。

+0

所以我们不能在.net中获得本地IP地址吗?使用任何方法? –

+0

具有升级的安全权限的浏览器插件(即,当浏览器安全性足够低时,询问用户而不是完全忽略它,并且当用户单击是一堆安全警告时)可以获取网络接口的IP地址系统;它可能甚至能够找出哪一个将被用于到您的服务器的路由中......但这对于WWW并不实用,并且除了在HTTP请求中接收数据之外不涉及服务器端代码(就像它会从一个表单)。 – Quentin

0

本地IP只是(本地)它永远不会离开本地路由器,您将需要使用某种本地执行的代码将其发送到服务器。

+1

浏览器不提供任何允许JavaScript获取本地地址的API(其中可能有很多(我的当前工作站上有4个IPV4地址))。 – Quentin

+0

对不起,你是非常正确的编辑来反映这一点。 –