IP格式检查、IP -- INT 转换

  public   static   bool  CheckIPAddress( string  IP)
        {
            
string  pattern  =   @" (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])) " ;
            System.Text.RegularExpressions.Regex regex 
=   new  System.Text.RegularExpressions.Regex(pattern);
            
if  (regex.Match(IP).Success)
            {
                
return   true ;
            }
            
else
            {
                
return   false ;
            }
        }

        
private   static   long  IpToInt( string  ip)
        {
            
char [] separator  =   new   char [] {  ' . '  };
            
if  (ip.Split(separator).Length  ==   3 )
            {
                ip 
=  ip  +   " .0 " ;
            }
            
string [] strArray  =  ip.Split(separator);
            
long  num2  =  (( long .Parse(strArray[ 0 ])  *   0x100L *   0x100L *   0x100L ;
            
long  num3  =  ( long .Parse(strArray[ 1 ])  *   0x100L *   0x100L ;
            
long  num4  =   long .Parse(strArray[ 2 ])  *   0x100L ;
            
long  num5  =   long .Parse(strArray[ 3 ]);
            
return  (((num2  +  num3)  +  num4)  +  num5);
        }

        
private   static   string  IntToIP( long  ip_Int)
        {
            
long  num  =  ( long )((ip_Int  &   0xff000000L >>   0x18 );
            
if  (num  <   0L )
            {
                num 
+=   0x100L ;
            }
            
long  num2  =  (ip_Int  &   0xff0000L >>   0x10 ;
            
if  (num2  <   0L )
            {
                num2 
+=   0x100L ;
            }
            
long  num3  =  (ip_Int  &   0xff00L >>   8 ;
            
if  (num3  <   0L )
            {
                num3 
+=   0x100L ;
            }
            
long  num4  =  ip_Int  &   0xffL ;
            
if  (num4  <   0L )
            {
                num4 
+=   0x100L ;
            }
            
return  (num.ToString()  +   " . "   +  num2.ToString()  +   " . "   +  num3.ToString()  +   " . "   +  num4.ToString());
        }

转载于:https://www.cnblogs.com/RobotTech/archive/2007/10/31/944053.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值