ip范围生成 C#
#region ip
/// <summary>
/// ip rang ,ip
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
bool Get_IPRangExist(string str, string ip)
{
bool val = false;
if (string.IsNullOrEmpty(str))
{
return val;
}
if (str.Contains(ip))
{
return true;
}
string[] sp = str.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
if (sp.Length > 0)
{
foreach (var item in sp)
{
if (item.Contains("-"))
{
string[] sp2 = item.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
if (sp2.Length == 2)
{
val = GetIPInfo2(sp2[0], sp2[1], ip);
if (val)
{
break;
}
}
}
else if (item.Contains("*")) {
string[] spsynctlist = item.Split(new string[]{"*"},StringSplitOptions.RemoveEmptyEntries);
foreach (var item_sp in spsynctlist)
{
if (ip.Contains(item_sp))
{
val = true; break;
}
}
}
if(item == ip)
{
val = true; break;
}
}
}
return val;
}
bool GetIPInfo2(string source, string des, string ip)
{
bool B_flag = false;
if (source == des)
{
return source == ip;
}
string[] p1 = source.Split(new char[] { '.' });
string[] p2 = des.Split(new char[] { '.' });
List<Tuple<int,int>> tupeIPList=new System.Collections.Generic.List<Tuple<int,int>>();
for (int i = 0; i < 4; i++)
{
string a = p1[i];string b = p2[i];
int start = Math.Min(int.Parse(a), int.Parse(b));
int end = Math.Max(int.Parse(a), int.Parse(b));
tupeIPList.Add(new Tuple<int, int>(start, end));
}
#region MyRegion
for (int a =tupeIPList[0].Item1; a <= tupeIPList[0].Item2; a++)
{
for (int b =tupeIPList[1].Item1; b <= tupeIPList[1].Item2; b++)
{
for (int c = tupeIPList[2].Item1; c <= tupeIPList[2].Item2; c++)
{
for (int d = tupeIPList[3].Item1; d <= tupeIPList[3].Item2;d++)
{
string template = string.Format("{0}.{1}.{2}.{3}",a,b,c,d);
if (template==ip)
{
B_flag = true;
break;
}
}
}
}
}
#endregion
return B_flag;
}
#endregion
public void test() {
Console.WriteLine("start");
List<Tuple<string, string>> a = new List<Tuple<string, string>>();
a.Add(new Tuple<string, string>("10.0.0.0-10.255.255.255", "10.19.48.27"));
a.Add(new Tuple<string, string>("10.*.*.*", "10.19.48.27"));
a.Add(new Tuple<string, string>("10.1.25.13-10.255.25.13", "10.19.48.27"));
a.Add(new Tuple<string, string>("10.1.25.13-10.255.25.13", "10.19.25.13"));
foreach (var item in a)
{
var start1 = System.Diagnostics.Stopwatch.StartNew(); start1.Start();
Console.WriteLine(Get_IPRangExist(item.Item1,item.Item2));
start1.Stop();
Console.WriteLine(item.Item1+" "+item.Item2+" ------- "+start1.ElapsedMilliseconds.ToString());
}
}
ip范围生成 C#的更多相关文章
- 使用python找出nginx访问日志中访问次数最多的10个ip排序生成网页
使用python找出nginx访问日志中访问次数最多的10个ip排序生成网页 方法1:linux下使用awk命令 # cat access1.log | awk '{print $1" &q ...
- Arria10调试问题集之——480转成270中DDR4 IP重新生成的问题
在把FPGA器件从480修改成270时DDR4报错: Error (16383): Silicon revision parameter for the following EMIF/PHYLite ...
- C# 输入ip段生成ip地址
具体代码如下: private void button1_Click(object sender, EventArgs e) { string StartIp = ...
- C# 指定ip段生成ip地址
private void button1_Click(object sender, EventArgs e) { string StartIp = ""; string EndIp ...
- 关于ALTERA生成IP核卡住
最近搞fft,用的quartus13.1版本,发现quartus和modelism存在各种各样的坑啊,fftIP核大家可能也遇到过ip核 生成到一半就卡住的问题,之前我是通过换系统解决的,但是好景不长 ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- 图解TCP/IP→第2章基础知识
####TCP.IP背景**关键词:ARPANET,UNIX,分组交换技术,*ARPANET(阿帕网),也是全球互联网的鼻祖.阿帕网的成功也充分证明了基于分组交换技术的通信方法的可行性.*20世纪70 ...
- TCP/IP协议学习(二) LWIP用户自定义配置文件解析
LWIP协议支持用户配置,可以通过用户裁剪实现最优化配置,LWIP默认包含opts.h作为系统默认配置,不过通过添加lwipopts.h文件并包含在opts.h头文件之前就可以对lwip进行用户裁剪, ...
- 【TCP/IP 合约】 TCP/IP 基金会
总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后開始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...
随机推荐
- [P2526][SHOI2001]小狗散步
Link: P2526 传送门 Solution: 一道提示非常到位的题目 题面中强调了在两个路径相邻点间只能再去至多一个点,且每个点只计算一次贡献 于是明显可以将原题看作询问在两个不相交点集间最多能 ...
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果
双倍经验题... -->1750 dp!! 3384: [Usaco2004 Nov]Apple Catching 接苹果 Time Limit: 1 Sec Memory Limit: 12 ...
- webpack与browser-sync热更新原理深度讲解
本文首发于CSDN网站,下面的版本又经过进一步的修订.原文:webpack与browser-sync热更新原理深度讲解本文包含如下内容: webpack-hot-middleware EventSou ...
- ajax跨域的解决方案
前言 公司要做一个活动页面,在其过程中发现所有的接口,ajax请求跨域.这里对跨域做个简单介绍以及提供几种解决办法. 由于浏览器实现的同源策略的限制,XmlHttpRequest只允许请求当前源(域名 ...
- Virtualbox+ubuntu设置共享文件夹
转:http://www.juwends.com/tech/unix_series/virtualbox-ubuntu-sharefolder.html 1. 进入系统,安装增强功能,安装完关闭系统. ...
- [转]Sql Server 主从数据库配置
本文转自:http://www.cnblogs.com/yukaizhao/archive/2010/06/02/sql-server-master-slave-mode.html 网站规模到了一定程 ...
- python学习:两个py文件间的函数调用
本例子是测试一些数据分析模型的R值,R值越接近1,表明该模型越适合分析该数据集. 本例子是在集成开发环境Aptana Studio 3 中创建 一个dataAnaly ,然后创建modelTest.p ...
- OSG立体模式下动态修改相机远近裁剪面的实现
1. 非立体模式下动态修改相机远近裁剪面 class GLB_DLLCLASS_EXPORT CGlbGlobeClipHandler : public osg::NodeCallback { ...
- after、append和appendTo三个函数的区别
jq文档的说明是 1.after函数 定义和用法: after() 方法在被选元素后插入指定的内容. 语法: $(selector).after(content) 实例: <html>&l ...
- http://my.oschina.net/u/1177710/blog/284608
http://my.oschina.net/u/1177710/blog/284608 http://chuhanzhi.com/?p=45 http://www.2cto.com/kf/201501 ...