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

根据地址查询经纬度IP(百度地图)

在线展示:http://codepen.io/dddddd1/pen/NbpegM
  • dengboblog
  • dengboblog
  • 2016年11月22日 14:17
  • 2884

php和mysql关于ip段查询

背景:项目中有个小需求需要统计某个地区在某个时间段的注册用户数
  • cdy102688
  • cdy102688
  • 2014年11月07日 15:32
  • 1185

Java查询IP地址所在地

package ip; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.Input...
  • lpy3654321
  • lpy3654321
  • 2015年02月14日 13:56
  • 3286

IP地址查询代码

IP地址查询的实现方法可能和大家自己的想法不是一样的。大家可以看看一般的实现方法。  ipQueary.jsp%@page contentType="text/html; charset=gb2312...
  • longronglin
  • longronglin
  • 2006年09月05日 11:38
  • 2430

通过输入IP地址查询国家、城市、所有者等信息。

http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx
  • a3676212
  • a3676212
  • 2009年03月28日 10:44
  • 2080

分享几个免费IP地址查询API接口

1.IP地址查询接口:http://apis.juhe.cn/ip/ip2addr 要先去https://www.juhe.cn/docs/api/id/1申请APPKEY   2.新浪的IP地...
  • ishxiao
  • ishxiao
  • 2016年09月26日 14:53
  • 7629

查询本机IP及精确地理位置

使用API查询IP对应的具体位置,注意点: 1.淘宝ip地址库http://ip.taobao.com/instructions.php,按照说明操作即可 第一行#linux系统中,指定pyt...
  • zhangqiang1104
  • zhangqiang1104
  • 2016年02月26日 22:02
  • 1468

MySql 用一句SQL语句查询IP地址是否在列表中(支持通配符)

在MySql中先创建一函数,目前MySql自定义函数只能返回一个值,无法以表形式返回 CREATE DEFINER = 'root'@'%' FUNCTION `split`(         f_s...
  • xiubiyuan
  • xiubiyuan
  • 2017年02月07日 09:42
  • 515

js 查询IP归属地

用的是新浪的IP地址查询接口 “`javascript $.getScript(‘http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=...
  • a634771197
  • a634771197
  • 2016年05月20日 17:56
  • 1253

JS IP地址查询API

腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplooku...
  • jiachunfeng
  • jiachunfeng
  • 2011年04月28日 15:31
  • 4926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ip查询
举报原因:
原因补充:

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