ip查询

原创 2011年01月11日 09:06: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及精确地理位置

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

IP问问:高精度IP定位|IP查询工具内测(街道级别)

根据客户和网友反馈,埃文科技把IP问问这款高精度IP定位|IP查询工具独立出来给大家使用,同时也给大家提供了手机查询的界面,方便大家使用。 鼓励大家内测发现问题,反馈给我们。 为了让大家最大程度查...
  • AIwenIPgeolocation
  • AIwenIPgeolocation
  • 2017年06月27日 14:08
  • 4745

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

IP地址查询接口及调用方法 设计蜂巢 | 2011-12-29 | javascript 设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/i...
  • kong1940742529
  • kong1940742529
  • 2017年02月09日 12:20
  • 3467

Java查询IP地址所在地

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

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

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

超简单的 Python 根据用户ip查询位置

通过用户IP查询用户位置网上已经有这样的入口,很多都可以查,我这里使用了IP138的查询服务。这网站也是挺逗的,首页丑的不要不要的,登陆之后的页面却好看很多。首先注册一个ip138账号并登陆,在用户中...
  • Creabine
  • Creabine
  • 2016年12月29日 10:21
  • 2307

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

IP地址查询接口及调用方法 设计蜂巢 | 2011-12-29 | javascript 设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/i...
  • feixiangdexin123087
  • feixiangdexin123087
  • 2013年06月08日 17:44
  • 33876

python爬虫实战-自动IP地址查询

该段代码实现IP地址的自动查询。 IP地址查询结果的来源:http://www.ip138.com/ips138.asp假设查询IP地址为:172.18.92.222,在上面那个网站的查询结果如下:...
  • linzch3
  • linzch3
  • 2017年03月15日 23:39
  • 847

查找交换机IP笨方法

 偶然间收到整理公司内部交换机及IP的事情,一般在网络建设的时候就会在交换机上把IP地址设置好,在用标签进行标识,这样查找问题会省去很多麻烦。但是如果您在开始就没有设置交换机,或者您刚刚到公司根...
  • yang39921
  • yang39921
  • 2017年01月24日 15:30
  • 1742

不用软件直接查询QQ好友的IP地址(二)

转载地址:http://blog.csdn.net/xyydyyqf/article/details/9149205 文中方法与好友是否在线没有关系  ,查到IP直接利用ping命令测试是否...
  • qq_21792169
  • qq_21792169
  • 2016年03月24日 11:35
  • 4749
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ip查询
举报原因:
原因补充:

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