代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
查询IP段功能
作者:
东昌
/ 发布于
2015/11/13
/
471
本文将通过一个实例来向大家讲解如何使用C#来编写一个具备查询IP段功能的小程序。主要功能:查询一个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("石家庄", "219.148.24.0", "219.148.63.255")); irm.Add(new IPRange("石家庄", "222.222.0.0", "222.222.63.255")); irm.Add(new IPRange("唐山", "219.148.64.0", "219.148.79.255")); irm.Add(new IPRange("保定", "219.148.20.0", "219.148.23.255")); Console.WriteLine(irm.Search("219.148.56.3").Name); Console.ReadLine(); } } public class IPRange { private string _Name = string.Empty; private ulong _BeginIP = 0; private ulong _EndIP = Int32.MaxValue; /**//// /// IP段名称 /// public string Name { get { return _Name; } set { _Name = value; } } /**//// /// ?始IP /// public ulong BeginIP { get { return _BeginIP; } set { _BeginIP = value; } } /**//// /// ?束IP /// public ulong EndIP { get { return _EndIP; } set { _EndIP = value; } } /**//// /// 此IP段的范? /// public ulong Range { get { return EndIP - BeginIP; } } public IPRange(string name, string ipBegin, string ipEnd) { this.Name = name; this.BeginIP = IP2A(ipBegin); this.EndIP = IP2A(ipEnd); } public static ulong IP2A(string ip) { byte[] bytes = IPAddress.Parse(ip).GetAddressBytes(); ulong ret = 0; foreach (byte b in bytes) { ret <<= 8; ret |= b; } return ret; } public static int Compare(IPRange x, IPRange y) { if(x.Range == y.Range) return 0; else if(x.Range > y.Range) return 1; else return -1; } } 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.Compare)); } } public IPRange Search(string ipString) { ulong ip = IPRange.IP2A(ipString); this.Sort(); foreach (IPRange ir in _IPRangeList) { if (ir.BeginIP <= ip && ir.EndIP >= ip) { return ir; } } return null; } } }
试试其它关键字
查询IP
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
东昌
贡献的其它代码
(
28
)
.
pandas读取指定列
.
根据经纬度计算距离排序
.
获取注入对象的方法
.
添加一个字段
.
sqoop command –help
.
去除C语言注释
.
从Request.Url获取根网址的最简单方法
.
删除数据库关联记录(外键)
.
递归生成树
.
按位异或实现加密解密
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3