要是用路由器交换机的得到的ip不是10.X就是192.X
我如何获得当前浏览用户的不是路由过的实际的ip
我Google过了没太好用的

解决方案 »

  1.   

    http://hi.baidu.com/ahhui/blog/item/9a2e0bf3b01e8ecc0a46e099.html
      

  2.   

    在web程序里得到的IP是代理服务器的IP
      

  3.   

    ding ~ google一下 get生方法 !
      

  4.   

    我进行了实验,在局域网内
    rs.ReadToEnd()得到的字符串中有我的ip
    Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]");后变成了空“”
      

  5.   

    我在网络上下载一个表达式
    正则表达式我是一个字也不会写
    您看有什么不妥
     Match m = Regex.Match(s, @"((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)){3}");
            if (m.Success) return m.Value;orm。ToString()
      

  6.   

    好像目前流行的方法都得不到100%完全真实的IP.
    1.拿不到代理前的IP
    2.有时候甚至拿不到任何IP信息( return null)
      

  7.   

    这个不知是否适合您:
    http://www.cnblogs.com/insus/articles/1399326.html
      

  8.   

    这个是这样的,在巴音库尔勒打开页面看到的ip是114.118.71.87
    但是用程序得到的是这个222.131.88.168,这个是北京的adsl
      

  9.   

    不对吧,您这个是在服务器打开的,所以说ip永远是您服务器ip啊
      

  10.   

    您这个是不是HTTP_X_FORWARDED_FOR
    然后REMOTE_ADDR然后UserHostAddress
    得到总是路由的而且没回得到的还不一样
      

  11.   


     Private Function getIP()        Dim strIPAddr        If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Or InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then            strIPAddr = Request.ServerVariables("REMOTE_ADDR")        ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then            strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") - 1)        ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then            strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") - 1)        Else            strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")        End If        getIP = Trim(Mid(strIPAddr, 1, 30))    End Function