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 ...
随机推荐
- 初见Python<6>:文件读写
1.open函数语法: python通过open函数打开文件,建立程序与文件之间的连接. open函数语法:open(filename[,mode[,buffering]]) 其中filename是指 ...
- [CODE FESTIVAL 2017]Poor Penguin
题意:在一个$n\times m$的网格上,每个格子是薄冰或冰山(网格外什么都没有),有一片薄冰上站着一只企鹅,对于薄冰$(i,j)$,如果不满足($(i-1,j),(i+1,j)$都有东西或$(i, ...
- [xsy2123]毛毛虫
题意:有一棵带点权的树,链修改是把$(x,y)$这条链和与其相邻的节点都加上一个数,查询是问$(x,y)$这条链和与其相邻的节点的权值和 学到了一个新姿势? 考虑树链剖分,在剖重链时每次给当前节点的儿 ...
- 随机数选择器 Exercise07_13
import java.util.Scanner; /** * @author 冰樱梦 *时间:2018年下半年 *题目:随机数选择器 */ public class Exercise07_13 { ...
- codevs 3641 上帝选人
3641 上帝选人 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 世界上的人都有智商IQ和情商EQ.我们用两个数字来表示人的 ...
- [经验]我的电脑只有IE64位浏览器能上网,其他软件都上不了网
[网上案例] 1.“我的电脑是VISTA 系统 昨天还好好的 进早上就显示什么Windows通信端口初始化失败 而且连不上网 求强人帮忙”2.“正常关机,第二天开机后,无法上网了所有浏览器,除了ie6 ...
- 【IntelliJ IDEA】在idea上操作 git分支合并【如何将远程swagger分支 合并到 远程 master分支上】【如何切换 本地分支】
============================================ 明确一点: 如果项目交给git管理了[如何将项目交给git管理:https://www.cnblogs.com ...
- 使用Hexo快速搭建一个博客,并部署到github
本文旨在记录一下我在通过hexo搭建一个博客,并将其部署在github上面的过程,也供我自己在以后的使用过程中能够快速学习和参考.需要看更详细或者官方文档的可以点击Hexo官方文档进行查看. 安装前提 ...
- MySql Replication基本原理
Replication的思想是将数据在集群的多个节点同步.备份,以提高集群数据的可用性(HA):Mysql使用Replication架构来实现上述目的,同时可以提升了集群整体的并发能力.5.6版本作为 ...
- .NET-DataColumn.DataType 属性
public DataTable MakeDataTable(){ DataTable myTable; DataRow myNewRow; // Create a new DataTable. my ...