我想取下面数据 192.168.0.1 -192.168.1.100得到的结果应该是192.168.0.1-192.168.0.254; 192.168.1.1-192.168.1.100这个for循环该如果实现呢。

解决方案 »

  1.   

    不太清楚你的意思
    拆成两个循环就可以实现呀
                for (int i = 1; i <= 254; i++)
                {
                    Console.WriteLine("192.168.0." + i.ToString());
                }            for (int i = 1; i <= 100; i++)
                {
                    Console.WriteLine("192.168.1." + i.ToString());
                }
      

  2.   

    for (int i = 0; i < 254; i++)
                {
                    Console.WriteLine("192.168.0." + i.ToString());
                    Console.WriteLine("192.168.1." + i.ToString());
                }
    //或者
                for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < 254; j++)
                    {
                        Console.WriteLine("192.168." + i.ToString() + "." + j.ToString());
                    }
                }
      

  3.   

    你自己说只要0段个1段的啊..
    要100段?
    for (int i = 0; i < 100; i++)
                {
                    ThreadPool.QueueUserWorkItem(new WaitCallback(addIP),i); 
                }public void addIP(Object state)
            {
                int i = Convert.ToInt32(state);
                for (int j = 0; j < 255; j++)
                {
                    Console.WriteLine("192.168."+j.ToString()+"." + i.ToString());
                    Console.WriteLine("192.168." + j.ToString() + "." + i.ToString());
                }
            }
    没试过,也不想试.
    输出顺序我不保证,但是运行结束 应该能把100段的全弄出来
      

  4.   

    public void addIP(Object state)
            {
                int i = Convert.ToInt32(state);
                for (int j = 0; j < 255; j++)
                {
                    Console.WriteLine("192.168."+j.ToString()+"." + i.ToString());
                                }
            }
    - -戳,多写了一句,,,,看样子真困了...
      

  5.   

     (int i = 0; i < 254; i++)
                {
                    Console.WriteLine("192.168.0." + i.ToString());
                    Console.WriteLine("192.168.1." + i.ToString());
                }            for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < 254; j++)
                    {
                        Console.WriteLine("192.168." + i.ToString() + "." + j.ToString());
                    }
                }
      

  6.   

    在for 里面加判断条件 
      

  7.   


    string ip1 = "192.168.0.10";
            string ip2 = "192.168.1.20";
            //ip的倒数第二位和最后一位
            int ip1_last2 = int.Parse(ip1.Split('.')[2]), ip1_last = int.Parse(ip1.Split('.')[3]);
            int ip2_last2 = int.Parse(ip2.Split('.')[2]), ip2_last = int.Parse(ip2.Split('.')[3]);
            while (ip1_last2 < ip2_last2 || (ip1_last2 == ip2_last2 && ip1_last <= ip2_last))
            {
                Console.WriteLine(string.Format("192.168.{0}.{1}", ip1_last2, ip1_last));
                ip1_last++;
                if (ip1_last == 255)
                {
                    ip1_last = 1;
                    ip1_last2++;
                }
            }
      

  8.   


    for (int i = 0; i < 254; i++)             {                 Console.WriteLine("192.168.0." + i.ToString());                 Console.WriteLine("192.168.1." + i.ToString());             } //或者             for (int i = 0; i < 2; i++)             {                 for (int j = 0; j < 254; j++)                 {                     Console.WriteLine("192.168." + i.ToString() + "." + j.ToString());                 }             } 
      

  9.   

    for (int i = 0; i < 254; i++)             {                 Console.WriteLine("192.168.0." + i.ToString());                 Console.WriteLine("192.168.1." + i.ToString());             } //或者             for (int i = 0; i < 2; i++)             {                 for (int j = 0; j < 254; j++)                 {                     Console.WriteLine("192.168." + i.ToString() + "." + j.ToString());                 }             }  
      

  10.   

                string str1 = "192.168.0.1";
                string str2 = "192.168.22.100";
                string reg = @"192\.168\.(\d{1,3})\.(\d{1,3})";
                Match m = Regex.Match(str1, reg);
                int istart = int.Parse(Regex.Match(str1, reg).Groups[1].Value);
                int istop = int.Parse(Regex.Match(str2, reg).Groups[1].Value);
                int jstart = int.Parse(Regex.Match(str1, reg).Groups[2].Value);
                int jstop = int.Parse(Regex.Match(str2, reg).Groups[2].Value);
                for (int i = istart; i <= istop; i++)
                {
                    if (istart == istop)
                    {
                        Console.WriteLine("192.168." + istart + "." + jstart + "-192.168." + istop + "." + jstop);
                    }                if (i == istart && i < istop)
                    {
                        Console.WriteLine("192.168." + i + "." + jstart + "-192.168." + i + ".254");
                    }
                    if (i > istart && i < istop)
                    {
                        Console.WriteLine("192.168." + i + ".1-192.168." + i + ".254");
                    }
                    if (i > istart && i == istop)
                    {
                        Console.WriteLine("192.168." + i + ".1-192.168." + i+"."+jstop);
                    }
                }
                Console.ReadKey();亲测可用,支持192.168.0.1-192.168.254.254之间的任意IP
      

  11.   


    for (int i = 0; i <= 1; i++)
                    {
                        for (int j = 1; j <= 255; j++)
                        {
                            if (i == 0)
                            {
                                Console.WriteLine("192.168.0." + j.ToString());
                            }
                            else if (i == 1)
                            {
                                Console.WriteLine("192.168.1." + j.ToString());
                                if (j == 100)
                                {
                                    break;
                                }
                            }
                        }
                    }
                //可能比较啰嗦,但是思路挺清晰
      

  12.   

     - -晕 上次是在太困了, 理解错意思了
    现在知道LZ想表达什么了..
    就是遍历出2个合法IP之间的所有IP
    如:开始ip:192.168.0.0  结束IP:192.168.1.100
    那么就要输出 开始IP段的所有IP 和结束IP段的前100条IP
    从192.168.0.0到192.168.1.100结束重新贴下代码,我用的是winform,其实差不多.
    string IP_S = "";
            string IP_E = "";
            private void button1_Click(object sender, EventArgs e)
            {
                //开始IP
                IP_S = textBox2.Text;
                //结束IP
                IP_E = textBox3.Text;
                //拆分
                string[] IP_SList = IP_S.Split('.');
                string[] IP_EList = IP_E.Split('.');            //不满足循环
                if ((IP_S == IP_E) || (int.Parse(IP_EList[2]) < int.Parse(IP_SList[2])))
                {
                    return;
                }
                else
                {
                    //开始循环输出
                    getIP(IP_SList, IP_EList);
                }
            }
            /// <summary>
            /// 循环输出
            /// </summary>
            /// <param name="IP_SList">开始IP拆分后的集合</param>
            /// <param name="IP_EList">结束IP拆分后的集合</param>
            private void getIP(string[] IP_SList,string[] IP_EList)
            {
                //如果2个IP段相同
                if (int.Parse(IP_EList[2]) == int.Parse(IP_SList[2]))
                {
                    //循环IP差
                    for (int i = int.Parse(IP_SList[3]); i < int.Parse(IP_EList[3])+1; i++)
                    {
                        //输出IP
                        textBox1.Text += IP_SList[0] + "." + IP_SList[1] + "." + IP_SList[2] + "." + i.ToString()+"\r\n";
                    }
                }
                else
                {
                    //循环255次
                    for (int i = int.Parse(IP_SList[3]); i < 256; i++)
                    {
                        //输出IP
                        textBox1.Text += IP_SList[0] + "." + IP_SList[1] + "." + IP_SList[2] + "." + i.ToString() + "\r\n";
                    }
                    //开始IP段+1
                    IP_SList[2] = (int.Parse(IP_SList[2]) + 1).ToString();
                    //开始IP归0
                    IP_SList[3] = "0";
                    //递归循环输出
                    getIP(IP_SList, IP_EList);
                }
            }
      

  13.   

    public List<string> IP_Adress(string begin, string end)
            {
                //下面的z.c.x.y分别对应192.168.1.1
                List<string> list = new List<string>();
                //获取开始和结束(z.c.x.y的x)
                int _temp_begin_one = Convert.ToInt32(begin.Substring(8, 1));
                int _temp_end_one = Convert.ToInt32(end.Substring(8, 1));
                //获取开始和结束(z.c.x.y的y)
                int _temp_begin_two = Convert.ToInt32(begin.Substring(10));
                int _temp_end_two = Convert.ToInt32(end.Substring(10));
                //获取开头部分z.c.x.y的z和c
                int _temp_z = Convert.ToInt32(end.Substring(0,3));
                int _temp_c = Convert.ToInt32(end.Substring(4,3));
                //从x开始循环
                for (int i = _temp_begin_one; i <= _temp_end_one; i++)
                {
                    
                    int _for_begin;//y的开始;
                    int _for_end;  //y的结束                //如果x的开始和结束是否相等
                    if (_temp_begin_one != _temp_end_one )
                    {
                        _for_begin = _temp_begin_two;
                        _for_end = 254;
                        _temp_begin_one++;
                    }
                    else
                    {
                        _for_begin = _temp_begin_two;
                        _for_end = _temp_end_two;
                    }
                    for (int j = _for_begin; j <= _for_end; j++)
                    {
                        list.Add(_temp_z + "." + _temp_c + "." + i + "." + j);
                    }
                }            return list;
            }看成254进制的数就好了..调用时直接输入IP就行了..如string begin="192.168.0.1" string end="192.168.1.12"
      

  14.   

    public List<string> IP_Adress(string begin, string end)
            {
                //下面的z.c.x.y分别对应192.168.1.1
                List<string> list = new List<string>();
                string reg = @"(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})";
                Match m = Regex.Match(begin, reg);
                //获取开头部分z.c.x.y的z和c
                int _temp_z = int.Parse(Regex.Match(begin, reg).Groups[1].Value);
                int _temp_c = int.Parse(Regex.Match(begin, reg).Groups[2].Value);
                //获取开始和结束(z.c.x.y的x)
                int _temp_begin_one = int.Parse(Regex.Match(begin, reg).Groups[3].Value);
                int _temp_end_one = int.Parse(Regex.Match(end, reg).Groups[3].Value);
                //获取开始和结束(z.c.x.y的y)
                int _temp_begin_two = int.Parse(Regex.Match(begin, reg).Groups[4].Value);
                int _temp_end_two = int.Parse(Regex.Match(end, reg).Groups[4].Value);
                //从x开始循环
                for (int i = _temp_begin_one; i <= _temp_end_one; i++)
                {
                    
                    int _for_begin;//y的开始;
                    int _for_end;  //y的结束                //如果x的开始和结束是否相等
                    if (_temp_begin_one != _temp_end_one )
                    {
                        _for_begin = _temp_begin_two;
                        _for_end = 254;
                        _temp_begin_one++;
                    }
                    else
                    {
                        _for_begin = _temp_begin_two;
                        _for_end = _temp_end_two;
                    }
                    for (int j = _for_begin; j <= _for_end; j++)
                    {
                        list.Add(_temp_z + "." + _temp_c + "." + i + "." + j);
                    }
                }            return list;
            }一开始没详细看你的要求..这个改过了..偷了下21楼的正则表达式..1.1.1.1到999.999.999.999都行
    开始和结束的开头2位(如192,168)要一样..如果不一样就按结束的开头做内容了
      

  15.   

    看楼上的都太复杂了,我有个简单的方法,代码贴下
     int num = 0;
                for (int i = 0; i < 2; i++)
                {
                    if (i == 0)
                    {
                        num = 255;
                    }
                    else
                    {
                        num = 100;
                    }
                    for (int j = 1; j <= num; j++)
                    {
                        listBox1.Items.Add("192.168." + i + "." + j);
                        messagebox.show("192.168." + i + "." + j);
                    }
                }
      

  16.   

    谢谢各位的热心回答,这个问题已经解决了,只要加个判断条件就行。  if(i==1 && j==100)break;