linux通过ip和掩码计算网段,linux如何实现IP地址汇总,以掩码方式显示

news/2024/7/4 8:44:00

其实这个标题名字不规范,应该叫做how to deaggregate ip ranges in linux

但是deaggregate ip ranges这个语句实在是不好翻译啊。

我先说下需求把,我们从纯真数据库中获得了这样的IP地址信息:

58.63.253.0     58.63.253.255   广东省广州市 世纪互联

59.151.0.0      59.151.53.255   北京市 世纪互联IDC机房

119.37.0.0      119.37.191.255  上海市 世纪互联

120.132.128.0   120.132.150.93  北京市 世纪互联(国际信息中心机房)

120.132.150.95  120.135.255.255 北京市 世纪互联(国际信息中心机房)

我们现在需要把它变成这种形式:

58.63.253.0/24 这种标准形式,这样就可以在iptables里面加相关策略了。

一开始,我们想到了将IP地址转变为数字,然后数字做加减,最后再将得到的数字转换为IP,这样就可以得到0.0.0.255这样的反掩码[Wildcard Mask],之后将反掩码变换成掩码就可以了。

在php中有个函数ip2long可以实现。以下使部分代码:

$IP1=”58.63.253.0″;

$low=ip2long($IP1);

$IP2=”58.63.253.255″;

$high=ip2long($IP2);

$result=$high-$low;

echo $result; echo “\n”;

echo long2ip($result);

?–>

还是有些麻烦,于是继续搜索资料,终于我们发现了一个叫做ipcalc的程序。

这个程序并不是Linux自带的ipcalc,因为RedhatLinux自带的这个ipcalc功能太少,满足不了我们的需求。

我们从ipcalc官网下载了新版http://jodies.de/ipcalc-archive/

其实ipcalc就是一个perl文件,可以直接使用vi编辑的。

ipcalc带有的Deaggregate address range.功能可以实现我们的需求。

于是就有了这样的方法:

将IP地址文件变成如下格式(中间带减号sed实现):

58.63.253.0 – 58.63.253.255

59.151.0.0 – 59.151.53.255

然后,我们从网上找到了很NB的语句

#cat ipranges.txt

213.87.86.160-213.87.86.193

213.87.87.0-213.87.88.255

91.135.210.0-91.135.210.255

#/bin/grep – ipranges.txt | while read line; do ipcalc $line ; done | grep -v deag

213.87.86.160/27

213.87.86.192/31

213.87.87.0/24

213.87.88.0/24

91.135.210.0/24

好了,就是这样了。

上面语句的出处是:

http://www.commandlinefu.com/commands/view/5420/deaggregate-ip-ranges


http://www.niftyadmin.cn/n/3660217.html

相关文章

linux命令 waf,命令执行WAF绕过技巧总结

原标题:命令执行WAF绕过技巧总结*本文作者:zusheng,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。前言如今市面上的WAF几乎都已经具备了针对RCE攻击的防御能力,这些WAF并不是想象中毫无破绽,当Web服务器…

手机支持linux4.9,凤凰系统率先升级内核到Linux4.9 支持更多新硬件

Linux Kernel 4.9版本于12月11日正式发布,受到业内极大关注,凤凰系统(Phoenix OS)率先升级,成为全球首家应用Linux Kernel 4.9版本的安卓操作系统。近年来,移动设备市场一路高歌猛进,硬件产品多样化的趋势愈加明显。受…

[CSDN 视频--新闻分析第四期]:开源心态、流氓软件、第三代搜索

本次视频的视频链接:http://live.csdn.net/Issue24/LivePlay.aspx"微软收购Zend"假新闻看开源需要新心态近日,看到CSDN一条IT传闻,“微软1.13亿美元收购zend,PHP可能改名MSSE ”。Zend--PHP的创造者。当然,这是来自国外…

linux centos7开放端口命令,Centos7开放端口教程

在 Centos 7 或 RHEL 7 或 Fedora 中防火墙由 firewalld 来管理,而不是 iptables。一、firewalld 防火墙语法命令如下:启用区域端口和协议组合firewall-cmd [--zone] --add-port[-]/ [--timeout]此举将启用端口和协议的组合。端口可以是一个单独的端口 或…

linux ctrl d终止shell,linux中ctrl+z、ctrl+d和ctrl+c的区别

linux中ctrlz、ctrld和ctrlc的区别fg、bg、jobs、&、ctrlz都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的。&最经常被用到这个用在一个命令的最后,可以把这个命令放到后台执行ctrl z 可以将一个正…

c语言伪随机数限制大小,C语言基础:伪随机数

学过《计算机组成原理与接口技术》这门课的人可能会记得在编制ROM BIOS时钟中断服务程序时会用到Intel 8253定时/计数器,它与Intel 8259中断芯片的通信使得中断服务程序得以运转,主板每秒产生的18.2次中断正是处理器根据定时/记数器值控制中断芯片产生的…

c 语言是面向对象程序设计,C 语言面向对象编程 - 封装

回复: 126C 语言面向对象编程 - 封装(46263843)出0入0汤圆电梯直达发表于 2019-11-29 08:53:31|只看该作者|倒序浏览|阅读模式本帖最后由 广轻电气091 于 2019-11-29 17:01 编辑大部分使用 C 语言进行开发的工程师,在接触更高级的编程语言之前,都认为 C …

Vista 是真正意义操作系统的回归吗?

Vista 是被微软寄予厚望的新一代桌面操作系统。它会给我们的生活工作带来什么?无数人带着这个问题来关注它的一举一动。微软却因为种种原因推迟Vista发布,在吊足了大家的胃口的同时也让许多用户感到失望。相信许多耐不住性子的人已经参加了微软的CPP计划…