select * from table_name 
where  startip like '
172.16.0.%' and right(startip, 3 ) > ip_input

解决方案 »

  1.   

    不光光是这两条ip,很多的ip记录,要找出随便的一个ip地址在数据库中的范围
      

  2.   

    转换成整数后比较Q : VB中怎样把一个整数表示的IP地址转变为常见的IP地址形式? 
    主要解答者: TechnoFantasy 提交人: TechnoFantasy 
    感谢: TechnoFantasy 
    审核者: TechnoFantasy 社区对应贴子: 查看 
         A :  比如:3544678610转变为××.××.××.××形式啊?  
    ---------------------------------------------------------------  
     
    Public  Function  Dotted2LongIP(DottedIP  As  String)  As  Variant  
           '  errors  will  result  in  a  zero  value  
           On  Error  Resume  Next  
     
           Dim  i  As  Byte,  pos  As  Integer  
           Dim  PrevPos  As  Integer,  num  As  Integer  
     
           '  string  cruncher  
           For  i  =  1  To  4  
                   '  Parse  the  position  of  the  dot  
                   pos  =  InStr(PrevPos  +  1,  DottedIP,  ".",  1)  
     
                   '  If  its  past  the  4th  dot  then  set  pos  to  the  last  
                   'position  +  1  
     
                   If  i  =  4  Then  pos  =  Len(DottedIP)  +  1  
     
                 '  Parse  the  number  from  between  the  dots  
     
                   num  =  Int(Mid(DottedIP,  PrevPos  +  1,  pos  -  PrevPos  -  1))  
     
                   '  Set  the  previous  dot  position  
                   PrevPos  =  pos  
     
                   '  No  dot  value  should  ever  be  larger  than  255  
                   '  Technically  it  is  allowed  to  be  over  255  -it  just  
                   '  rolls  over  e.g.  
                     '256  =>  0  -note  the  (4  -  i)  that's  the    
                     'proper  exponent  for  this  calculation  
     
     
               Dotted2LongIP  =  ((num  Mod  256)  *  (256  ^  (4  -  i)))  +  _  
                     Dotted2LongIP  
     
           Next  
     
    End  Function  
     
    '  convert  long  IP  to  dotted  notation  
     
    Public  Function  LongIP2Dotted(ByVal  LongIP  As  Variant)  As  String  
     
           On  Error  GoTo  ExitFun  
     
           If  LongIP  =  ""  Or  LongIP  <  0  Then  Err.Raise  vbObjectError  +  1  
     
           Dim  i  As  Integer,  num  As  Currency  
     
           '  big  number  cruncher  
           For  i  =  1  To  4  
                   '  break  off  individual  dot  values  -  math  out  the  wazoo  
                   num  =  Int(LongIP  /  256  ^  (4  -  i))  
     
                   '  sets  up  the  value  for  the  next  calculation  
                   LongIP  =  LongIP  -  (num  *  256  ^  (4  -  i))  
     
                   '  a  generic  error  to  flag  the  exception  handler  -    
                   'no  dot  value  should  ever  be  larger  than  255  
                   '  technically  it  is  allowed  to  be  over  255  
                   '  but  it's  not  possible  from  this  calculation  so    
                   'raise  an  error  
                   If  num  >  255  Then  Err.Raise  vbObjectError  +  1  
     
                   '  string  builder  
                   If  i  =  1  Then  
                           '  1st  dot  value  has  no  leading  dot  
                           LongIP2Dotted  =  num  
                   Else  
                           '  other  dot  values  have  a  leading  dot  
                           LongIP2Dotted  =  LongIP2Dotted  &  "."  &  num  
                   End  If  
           Next  
     
    Exit  Function  
    ExitFun:  
             LongIP2Dotted  =  "0.0.0.0"  '"Invalid  Input"  '  whatever  
    End  Function