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

解决方案 »

  1.   

    using Microsoft.VisualBasic;
    Private void getIP()
    {
        string strIPAddr;
        if (Request.ServerVariables("HTTP_X_FORWARDED_FOR") == "" || InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0)
        {
            strIPAddr = Request.ServerVariables("REMOTE_ADDR");
        }
        else
        {
           if (Microsoft.VisualBasic.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0)
           {
              strIPAddr = Microsoft.VisualBasic.Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1);
           }
           else
           {
               if (InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0)
               {
                   strIPAddr = Microsoft.VisualBasic.Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1);
               }
               else
               {
                   strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR");
               }
            }
         }
        getIP = Microsoft.VisualBasic.Trim(Microsoft.VisualBasic.Mid(strIPAddr, 1, 30));
    }
      

  2.   

    may be have some problem, I'm not testPrivate void getIP()
    ========>
    private void getIP()
      

  3.   

    //编译未出错,不代表能用 :P
    private string getIP()
    {
    string strIPAddr="";
    if(Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString() == "" || Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf("unknown")> 0 )
    {
    strIPAddr = Request.ServerVariables["REMOTE_ADDR"].ToString();
    }
    else if( Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(",") > 0 )
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Substring(0, Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(",")-1);
    }
    else if(Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(";") > 0 )
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Substring(0, Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(";")-1);
    }
    else
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    }
        
    return strIPAddr.Trim().Substring(0, 29);
    }
      

  4.   

    using System.Diagnostics;
    using Microsoft.VisualBasic;
    using System.Xml;
    using System;
    using System.Data;
    using System.Windows.Forms;
    using System.Collections;private object getIP()
    {
    object returnValue;

    object strIPAddr;
    if (Request.ServerVariables("HTTP_X_FORWARDED_FOR") == "" | Strings.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown", 0) > 0)
    {
    strIPAddr = Request.ServerVariables("REMOTE_ADDR");
    }
    else if (Strings.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",", 0) > 0)
    {
    strIPAddr = Strings.Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, Strings.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",", 0) -1);
    }
    else if (Strings.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";", 0) > 0)
    {
    strIPAddr = Strings.Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, Strings.InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";", 0) -1);
    }
    else
    {
    strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR");
    }
    returnValue = Strings.Trim(Strings.Mid(strIPAddr, 1, 30));
    return returnValue;
    }
      

  5.   

    未将对象引用设置到对象的实例。
    private string getIP()
    {
    string strIPAddr="";
    if(Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString() == "" || Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf("unknown")> 0 )
    {
    strIPAddr = Request.ServerVariables["REMOTE_ADDR"].ToString();
    }
    else if( Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(",") > 0 )
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Substring(0, Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(",")-1);
    }
    else if(Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(";") > 0 )
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Substring(0, Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().IndexOf(";")-1);
    }
    else
    {
    strIPAddr = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    }
        
    return strIPAddr.Trim().Substring(0, 29);
    }