试了下网上的代码,本机运行,下面这2个后台代码都可以获取,不过获取IP都是127.0.0.1  protected void Page_Load(object sender, EventArgs e)
    {
string ipAddress = Page.Request.UserHostAddress; //取到用户的IP地址
        Label1.Text = ipAddress;
String user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
        Label2.Text = user_IP;}要在一个局域网里用的,获取局域网里的客户端IP,并判断是否是允许访问的IP段,比如判断是否是10.110.120.0-1.110.225.0之间。代码怎么写?简单来说,就是获取并判断。

解决方案 »

  1.   

     public static Int32 CompareIP(String p1, String p2)
            {
                String[] ip1 = p1.Trim().Split('.');
                String[] ip2 = p2.Trim().Split('.');            for (Int32 i = 0; i < 4; i++)
                {
                    ip1[i] = ip1[i].TrimStart('0');
                    ip2[i] = ip2[i].TrimStart('0');
                }            Int64 n1 = Convert.ToInt64(String.Join("", ip1));
                Int64 n2 = Convert.ToInt64(String.Join("", ip2));            if (n1 > n2)
                    return 1;
                else if (n1 == n2)
                    return 0;
                else
                    return -1;        }Ip转long判断
    System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("");
    long ip= ipaddress.Address;a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;或直接调用IP的WEBSERVICE
      

  2.   

    楼上的大哥,我是新手,看不太懂呀,很不好意思,能否把获取了的ipAddress,加进10.110.120.0-1.110.225.0这个IP段加进去做判断,不要用return。我用label显示判断之后的结果的
      

  3.   

    127.0.0.1是自己定义的localhost地址 .
    你发布了 让别人访问就不会了 。
      

  4.   

    string startIP, endIP;
            startIP="10.1.1.1" ;  endIP="10.1.1.255";
            {
                // 分离出ip中的四个数字位
                string[] startIPArray = startIP.Split('.');
                string[] endIPArray = endIP.Split('.');            // 取得各个数字
                long[] startIPNum = new long[4];
                long[] endIPNum = new long[4];
                for (int i = 0; i < 4; i++)
                {
                    startIPNum[i] = long.Parse(startIPArray[i].Trim());
                    endIPNum[i] = long.Parse(endIPArray[i].Trim());
                }            // 各个数字乘以相应的数量级
                long startIPNumTotal = startIPNum[0] * 256 * 256 * 256 + startIPNum[1] * 256 * 256 + startIPNum[2] * 256 + startIPNum[3];
                long endIPNumTotal = endIPNum[0] * 256 * 256 * 256 + endIPNum[1] * 256 * 256 + endIPNum[2] * 256 + endIPNum[3];            if (startIPNumTotal > endIPNumTotal)
                {
                    label1.text="自己写";
                }
                else
                {
                    label1.text="自己写";
                }