生成IP地址列表

create or replace procedure p_wxip 
as
I_V1 int;
I_V2 int;
I_V3 int;
I_V4 int;
I_A1 int;
I_A2 int;
I_A3 int;
I_A4 int;
I_B1 int;
I_B2 int;
I_B3 int;
I_B4 int;
begin
  UPDATE TMP_WX SET F0=0;
  UPDATE TMP_WX SET F0=4 WHERE F0=0 AND A1<>B1;
  UPDATE TMP_WX SET F0=3 WHERE F0=0 AND A2<>B2;
  UPDATE TMP_WX SET F0=2 WHERE F0=0 AND A3<>B3;
  UPDATE TMP_WX SET F0=1 WHERE F0=0 AND A4<>B4;
  EXECUTE IMMEDIATE 'truncate table tmp_wxip';
  COMMIT;
/*0*/ 
  INSERT INTO tmp_wxip (IP,ID0)SELECT to_char(a1)||'.'||to_char(a2)||'.'||to_char(a3)||'.'||to_char(a4),ID  FROM  tmp_wx WHERE F0=0 ;
  COMMIT;
/*1*/
  FOR cur IN (SELECT * FROM TMP_WX  WHERE F0=1) LOOP
      I_A4:=cur.A4;
      I_B4:=cur.B4;
     
      I_V4:=I_A4;
      WHILE I_V4<=I_B4
      LOOP
          INSERT INTO tmp_wxip (IP,ID0) values ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID ) ;         
          I_V4:=I_V4+1;
      END LOOP;
  END LOOP;
  COMMIT;
/*2**/
  FOR cur IN (SELECT * FROM TMP_WX WHERE F0=2) LOOP
      I_A3:=cur.A3;
      I_B3:=cur.B3;
      I_A4:=cur.A4;
      I_B4:=cur.B4;
  /*2**I_V3:=I_A3*/ 
      I_V4:=I_A4;
      WHILE I_V4<256
      LOOP             
          INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
          I_V4:=I_V4+1;
      END LOOP;
  /*2**I_A3      I_V3:=I_A3+1;
      WHILE I_V3      LOOP
          I_V4:=0;
          WHILE I_V4<256
          LOOP             
              INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
              I_V4:=I_V4+1;
          END LOOP;
          I_V3:=I_V3+1;
      END LOOP;
  /*2**I_V3:=I_B3*/      
      I_V4:=0;
      WHILE I_V4<=I_B4
      LOOP         
          INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
          I_V4:=I_V4+1;
      END LOOP;
      COMMIT;
  END LOOP;
/*3**/
  FOR cur IN (SELECT * FROM TMP_WX WHERE F0=3) LOOP
      I_A2:=cur.A2;
      I_B2:=cur.B2;
      I_A3:=cur.A3;
      I_B3:=cur.B3;
      I_A4:=cur.A4;
      I_B4:=cur.B4;
/*3**I_V2:=I_A2/
  /*2**I_V3:=I_A3*/ 
        I_V4:=I_A4;
        WHILE I_V4<256
        LOOP             
            INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
            I_V4:=I_V4+1;
        END LOOP;
  /*2**I_A3        I_V3:=I_A3+1;
        WHILE I_V3        LOOP
            I_V4:=0;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            I_V3:=I_V3+1;
        END LOOP;
  /*2**I_V3:=I_B3*/      
        I_V4:=0;
        WHILE I_V4<=I_B4
        LOOP         
            INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
            I_V4:=I_V4+1;
        END LOOP;
        COMMIT;

/*3**I_A2      I_V2:=I_A2+1;     
      WHILE I_V2      LOOP
          I_V3:=0;
          WHILE I_V3<256
          LOOP
              I_V4:=0;
              WHILE I_V4<256
              LOOP                 
                  INSERT INTO tmp_wxip (IP,ID0)values (to_char(cur.B1)||'.'||to_char(I_V2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                  I_V4:=I_V4+1;
              END LOOP;
              I_V3:=I_V3+1;
          END LOOP;
          I_V2:=I_V2+1;
      END LOOP;
      COMMIT;
/*3**I_V2:=I_B2/
  /*2**I_V3:=I_A3*/ 
        I_V4:=I_A4;
        WHILE I_V4<256
        LOOP             
            INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
            I_V4:=I_V4+1;
        END LOOP;
  /*2**I_A3        I_V3:=I_A3+1;
        WHILE I_V3        LOOP
            I_V4:=0;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            I_V3:=I_V3+1;
        END LOOP;
  /*2**I_V3:=I_B3*/      
        I_V4:=0;
        WHILE I_V4<=I_B4
        LOOP         
            INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
            I_V4:=I_V4+1;
        END LOOP;
        COMMIT;
  END LOOP;
 
/*4**/
  FOR cur IN (SELECT * FROM TMP_WX WHERE F0=4) LOOP
      I_A1:=cur.A1;
      I_B1:=cur.B1;
      I_A2:=cur.A2;
      I_B2:=cur.B2;
      I_A3:=cur.A3;
      I_B3:=cur.B3;
      I_A4:=cur.A4;
      I_B4:=cur.B4;
/*4**I_V1:=I_A1/
    /*3**I_V2:=I_A2/
      /*2**I_V3:=I_A3*/ 
            I_V4:=I_A4;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
      /*2**I_A3            I_V3:=I_A3+1;
            WHILE I_V3            LOOP
                I_V4:=0;
                WHILE I_V4<256
                LOOP             
                    INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                    I_V4:=I_V4+1;
                END LOOP;
                I_V3:=I_V3+1;
            END LOOP;
      /*2**I_V3:=I_B3*/      
            I_V4:=0;
            WHILE I_V4<=I_B4
            LOOP         
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            COMMIT;

    /*3**I_A2          I_V2:=I_A2+1;     
          WHILE I_V2          LOOP
              I_V3:=0;
              WHILE I_V3<256
              LOOP
                  I_V4:=0;
                  WHILE I_V4<256
                  LOOP                 
                      INSERT INTO tmp_wxip (IP,ID0)values (to_char(cur.B1)||'.'||to_char(I_V2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                      I_V4:=I_V4+1;
                  END LOOP;
                  I_V3:=I_V3+1;
              END LOOP;
              I_V2:=I_V2+1;
          END LOOP;
          COMMIT;
    /*3**I_V2:=I_B2/
      /*2**I_V3:=I_A3*/ 
            I_V4:=I_A4;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
      /*2**I_A3            I_V3:=I_A3+1;
            WHILE I_V3            LOOP
                I_V4:=0;
                WHILE I_V4<256
                LOOP             
                    INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                    I_V4:=I_V4+1;
                END LOOP;
                I_V3:=I_V3+1;
            END LOOP;
      /*2**I_V3:=I_B3*/      
            I_V4:=0;
            WHILE I_V4<=I_B4
            LOOP         
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            COMMIT;

/*4**I_A1      I_V1:=I_A1+1;     
      WHILE I_V1      LOOP
          I_V2:=0;
          WHILE I_V2<256
          LOOP
              I_V3:=0;
              WHILE I_V3<256
              LOOP
                  I_V4:=0;
                  WHILE I_V4<256
                  LOOP                 
                      INSERT INTO tmp_wxip (IP,ID0)values (to_char(I_V1)||'.'||to_char(I_V2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                      I_V4:=I_V4+1;
                  END LOOP;
                  I_V3:=I_V3+1;
              END LOOP;
              I_V2:=I_V2+1;
          END LOOP;
          I_V1:=I_V1+1;
      END LOOP;
      COMMIT;
/*4**I_V1:=I_B1/
    /*3**I_V2:=I_A2/
      /*2**I_V3:=I_A3*/ 
            I_V4:=I_A4;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
      /*2**I_A3            I_V3:=I_A3+1;
            WHILE I_V3            LOOP
                I_V4:=0;
                WHILE I_V4<256
                LOOP             
                    INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.A2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                    I_V4:=I_V4+1;
                END LOOP;
                I_V3:=I_V3+1;
            END LOOP;
      /*2**I_V3:=I_B3*/      
            I_V4:=0;
            WHILE I_V4<=I_B4
            LOOP         
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            COMMIT;

    /*3**I_A2          I_V2:=I_A2+1;     
          WHILE I_V2          LOOP
              I_V3:=0;
              WHILE I_V3<256
              LOOP
                  I_V4:=0;
                  WHILE I_V4<256
                  LOOP                 
                      INSERT INTO tmp_wxip (IP,ID0)values (to_char(cur.B1)||'.'||to_char(I_V2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                      I_V4:=I_V4+1;
                  END LOOP;
                  I_V3:=I_V3+1;
              END LOOP;
              I_V2:=I_V2+1;
          END LOOP;
          COMMIT;
    /*3**I_V2:=I_B2/
      /*2**I_V3:=I_A3*/ 
            I_V4:=I_A4;
            WHILE I_V4<256
            LOOP             
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(cur.A3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
      /*2**I_A3            I_V3:=I_A3+1;
            WHILE I_V3            LOOP
                I_V4:=0;
                WHILE I_V4<256
                LOOP             
                    INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.A1)||'.'||to_char(cur.B2)||'.'||to_char(I_V3)||'.'||to_char(I_V4),cur.ID);
                    I_V4:=I_V4+1;
                END LOOP;
                I_V3:=I_V3+1;
            END LOOP;
      /*2**I_V3:=I_B3*/      
            I_V4:=0;
            WHILE I_V4<=I_B4
            LOOP         
                INSERT INTO tmp_wxip (IP,ID0)VALUES ( to_char(cur.B1)||'.'||to_char(cur.B2)||'.'||to_char(cur.B3)||'.'||to_char(I_V4),cur.ID);
                I_V4:=I_V4+1;
            END LOOP;
            COMMIT;
 
  END LOOP;
end ;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8797129/viewspace-539741/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8797129/viewspace-539741/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值