ip查询

原创 2011年01月11日 09:07:00

using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Net;
  5
  6namespace IPUtility
  7{
  8    class Program
  9    {
 10        static void Main(string[] args)
 11        {
 12            IPRangeManage irm = new IPRangeManage();
 13            irm.Add(new IPRange("石家庄", "219.148.24.0", "219.148.63.255"));
 14            irm.Add(new IPRange("石家庄", "222.222.0.0", "222.222.63.255"));
 15            irm.Add(new IPRange("唐山", "219.148.64.0", "219.148.79.255"));
 16            irm.Add(new IPRange("保定", "219.148.20.0", "219.148.23.255"));
 17
 18            Console.WriteLine(irm.Search("219.148.56.3").Name);
 19
 20            Console.ReadLine();
 21
 22        }
 23
 24
 25    }
 26
 27    public class IPRange
 28    {
 29        private string _Name = string.Empty;
 30
 31        private ulong _BeginIP = 0;
 32
 33        private ulong _EndIP = Int32.MaxValue;
 34
 35        /**//**//**//// <summary>
 36        /// IP段名称
 37        /// </summary>
 38        public string Name
 39        {
 40            get { return _Name; }
 41            set { _Name = value; }
 42        }
 43
 44        /**//**//**//// <summary>
 45        /// 开始IP
 46        /// </summary>
 47        public ulong BeginIP
 48        {
 49            get { return _BeginIP; }
 50            set { _BeginIP = value; }
 51        }
 52
 53        /**//**//**//// <summary>
 54        /// 结束IP
 55        /// </summary>
 56        public ulong EndIP
 57        {
 58            get { return _EndIP; }
 59            set { _EndIP = value; }
 60        }
 61
 62
 63        /**//**//**//// <summary>
 64        /// 此IP段的范围
 65        /// </summary>
 66        public ulong Range
 67        {
 68            get
 69            {
 70                return EndIP - BeginIP;
 71            }
 72        }
 73
 74        public IPRange(string name, string ipBegin, string ipEnd)
 75        {
 76            this.Name = name;
 77            this.BeginIP = IP2A(ipBegin);
 78            this.EndIP = IP2A(ipEnd);
 79        }
 80
 81
 82        public static ulong IP2A(string ip)
 83        {
 84            byte[] bytes = IPAddress.Parse(ip).GetAddressBytes();
 85            ulong ret = 0;
 86
 87            foreach (byte b in bytes)
 88            {
 89                ret <<= 8;
 90                ret |= b;
 91            }
 92
 93            return ret;
 94
 95        }
 96
 97
 98        public static int Compare(IPRange x, IPRange y)
 99        {
100            if(x.Range == y.Range)
101                return 0;
102            else if(x.Range > y.Range)
103                return 1;
104            else return -1;
105        }
106
107    }
108
109    public class IPRangeManage
110    {
111        public IPRangeManage()
112        { }
113
114        private List< IPRange> _IPRangeList = new List< IPRange>();
115        private bool _NeedSort = true;
116
117        public void Add(IPRange ipRange)
118        {
119            _IPRangeList.Add(ipRange);
120            _NeedSort = true;
121        }
122
123        private void Sort()
124        {
125            if (_NeedSort)
126            {
127                _IPRangeList.Sort(new Comparison<IPRange>(IPRange.Compare));
128            }
129        }
130
131        public IPRange Search(string ipString)
132        {
133            ulong ip = IPRange.IP2A(ipString);
134
135            this.Sort();
136
137            foreach (IPRange ir in _IPRangeList)
138            {
139                if (ir.BeginIP <= ip && ir.EndIP >= ip)
140                {
141                    return ir;
142                }
143            }
144            return null;
145        }
146    }
147}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuyq11/archive/2007/08/19/1750195.aspx

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Bing必应来帮忙之-查询虚拟主机服务器上的同IP网站

自从有了搜索引擎之后,我们就再也离不开它了!只要我们一上网,几乎都会打开搜索引擎来查找我们需要的资料,百度和谷歌早成了网民必备的网站。也正是由于谷歌和百度的大名,它们似乎已经变成搜索引擎的代名词,让我...
  • aerchi
  • aerchi
  • 2012-03-19 13:14
  • 2476

Python 脚本查询 ip纯真数据库

在网上找的脚本,已经验证过,可以使用,需要重新指定库文件,大家用的时候,需要注意下。 ip.py #!/usr/bin/env python #fileencoding=utf-8   ...

五种查询Internet连接状态[IP]的方法

1.Powersock 控件法:  这种方法最简单,利用FastNet页的 Powersock控件的LocalIP属性即可判断:  if(Powersock1->LocalIP=="127.0.0...

IP地址归属地查询接口

1、新浪IP API:         新浪这个应该说是最不错的。并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS、Json格式。下面列举的是JS的格式...
  • nxgych
  • nxgych
  • 2014-01-27 10:17
  • 1223

查询Ip、身份证、手机所在地代码

package test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java...

根据IP查询地址的方式

我在网上简单查了查,通过IP获取地址的方式有以下两种,**目前我只用到了IP4**。如果大家有别的方法可以评论下,我好学习下。通过调用第三方的API,如阿里,新浪等 下载IP数据库来自己建立IP数据库...

IP地址查询接口及调用方法

IP地址查询接口及调用方法 设计蜂巢 | 2011-12-29 | javascript 设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/i...

天气数据api根据IP地址查询所在地天气预报

天气数据api可查询天气预报,根据IP地址查询IP地址所在地的天气预报。 接口名称:天气数据api 接口平台:聚合数据 接口地址:http://v.juhe.cn/weather/ip 支持格...

spark数据分析之ip归属地查询

前一段时间,在项目中,领导要求实时查看来自各个省份的ip访问的详情,根据这一需求,通过flume/logstack实时采集nginx的日志到生产到kafka,再通过Spark实时消费分析保存到Redi...

汇集各种 webservice工厂,快递,ip,天气,身份证,手机,翻译,火车时刻,股票,邮编,二维码,公交,ISBN,ICP 查询接口 API

webservice工厂接口 http://www.36wu.com 快递查询接口http://webservice.36wu.com/ExpressService.asmx ip查询接口http...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)