知识大全 利用C#编写查询IP所在区段

Posted

篇首语:热水治不了百病,情话过不了一生。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用C#编写查询IP所在区段相关的知识,希望对你有一定的参考价值。

利用C#编写查询IP所在区段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  编程语言 C#类    别 (网络应用 实用算法)主要功能 查询一个IP所有的IP段 关键:从Byte数组到ulong的转换出来的数字和 IPAddress Address 返回值的是不一样的

   using System;using System Collections Generic;using System Text;using System Net;

  namespace IPUtility    class Program            static void Main(string[] args)                    IPRangeManage irm = new IPRangeManage();            irm Add(new IPRange( 石家庄 ));            irm Add(new IPRange( 石家庄 ));            irm Add(new IPRange( 唐山 ));            irm Add(new IPRange( 保定 ));

  Console WriteLine(irm Search( ) Name);

  Console ReadLine();

     

  public class IPRange             private string _Name = string Empty;

  private ulong _BeginIP = ;

  private ulong _EndIP = Int MaxValue;

  /**//// <summary>        /// IP段名称        /// </summary>        public string Name                    get return _Name;             set _Name = value;        

  /**//// <summary>        /// ?始IP        /// </summary>        public ulong BeginIP                    get return _BeginIP;             set _BeginIP = value;        

  /**//// <summary>        /// ?束IP        /// </summary>        public ulong EndIP                    get return _EndIP;             set _EndIP = value;        

  /**//// <summary>        /// 此IP段的范?        /// </summary>        public ulong Range                    get                            return EndIP BeginIP;                   

  public IPRange(string name string ipBegin string ipEnd)                    this Name = name;            this BeginIP = IP A(ipBegin);            this EndIP = IP A(ipEnd);       

  public static ulong IP A(string ip)                    byte[] bytes = IPAddress Parse(ip) GetAddressBytes();            ulong ret = ;

  foreach (byte b in bytes)                            ret <<= ;                ret |= b;           

  return ret;

  

  public static int Compare(IPRange x IPRange y)                    if(x Range == y Range)                return ;            else if(x Range > y Range)                return ;            else return ;       

  

  public class IPRangeManage            public IPRangeManage()       

  private List< IPRange> _IPRangeList = new List< IPRange>();        private bool _NeedSort = true;

  public void Add(IPRange ipRange)                    _IPRangeList Add(ipRange);            _NeedSort = true;       

  private void Sort()                    if (_NeedSort)                            _IPRangeList Sort(new Comparison<IPRange>(IPRange Compare));                   

  public IPRange Search(string ipString)                    ulong ip = IPRange IP A(ipString);

  this Sort();

  foreach (IPRange ir in _IPRangeList)                            if (ir BeginIP <= ip && ir EndIP >= ip)                                    return ir;                           

  return null;           

cha138/Article/program/net/201311/12757

相关参考

知识大全 解析php根据ip查询所在地区

  dat文件关于ip对应地区的信息文件qqwrydat文件网上自己下载class类文件解析qqwrydata文件的IpLocationphp文件复制代码代码如下:<?phpclassIpLoc

知识大全 利用Delphi2005编写C#应用程序

利用Delphi2005编写C#应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi

知识大全 利用C#实现分布式数据库查询

利用C#实现分布式数据库查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着传统的数据库计算

知识大全 asp.net 手机号码所在地查询实现代码

  用浏览器打开手机号码查询的网站同以上步骤找到他调用的地址最后编写代码如下  代码如下usingSystem;usingSystemWindowsForms;usingSystemXml;names

知识大全 C#实现更改IP功能源代码

C#实现更改IP功能源代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是一个很好的源码给大

知识大全 C#中如何得到主机名与IP地址

C#中如何得到主机名与IP地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /*  *Copy

知识大全 使用C#编写扩展存储过程

使用C#编写扩展存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是扩展存储过程?  

知识大全 用C#编写ActiveX控件

用C#编写ActiveX控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先建立一个WinFor

知识大全 通过手机QQ查询ip怎么办 我妹妹不见了

很急通过手机QQ查询ip怎么办我妹妹不见了!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!很急通过

知识大全 C#中如何编写使用SendMessage

C#中如何编写使用SendMessage  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!