iptables 删除重复的黑名单IP

为了应对cc攻击,部署了ddosdefender软件。但该软件有个bug,在添加黑名单的时候不会判断该ip是否已经添加进去,导致了防火墙列表中有很多重复的ip地址,可以使用下面的命令删除重复的数据,只保留一条。

iptables -vnL|grep DROP  | awk ‘{ print $8}‘ | grep -v "0.0.0.0" |awk ‘/[0-9]/‘ | sort | uniq -c|sort -nr |awk ‘{if($1 >1) print $1" "$2}‘ |awk ‘{for(i=1;i<=$1-1;i++) print "iptables -D INPUT -s  " $2 " -j DROP" | "bash" } ‘
时间: 2024-10-29 05:02:50

iptables 删除重复的黑名单IP的相关文章

iptables一次性封多个ip,使用ipset 工具

ipset是什么? ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置.官网:http://ipset.netfilter.org/ 1.ipset安装 yum安装: yum install ipset 源代码安装:

MySQL删除重复记录的方法

参考网上的方法,总结了产出重复记录的方法,欢迎交流. 方法1:创建一个新表临时储存数据 假设我们有一个存在多个字段的表,表中有部分数据的若干字段重复,此时我们可以使用DISTINCT这个关键字对表数据进行筛选. 1 CREATE [TEMPORARY] TABLE temp LIKE origin_tb; 2 INSERT temp(attr1,attr2,...) SELECT DISTINCT attr1,attr2,... FROM origin_tb; 3 DELETE FROM ori

C语言 &#183; 删除重复元素

算法提高 11-2删除重复元素 时间限制:10.0s   内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内部使用指针操作. 样例输入 1223445667889 样例输出 13579 样例输入 else 样例输出 ls 数据规模和约定 字符串数组最大长度为100. 1 /* 2 思路: 3 将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元 4 素,与a中的每个元素比较,有相同则b中对应元

mysql如何删除重复数据并保留ID最大的数据

题:有一张test表,里面含有三个字段id,name,sex. 问:如何查询重复数据? select name,sex,count(*) from test group by name,sex HAVING count(*)>1. 问:如何删除重复数据并保留ID最大的数据? delete a from test a join (select name,sex,count(*) ,max(id) as id from test group by name,sex HAVING count(*)>

SQL语句删除重复数据

1.如表中没有主键,先添加自动增长主键 alter table 表名 add 列名 int identity (1,1) primary key 2.删除重复数据 delete from 表名 where id not in (select min(id) from 表名 group by id)

Oracle查询重复数据与删除重复记录方法

比如现在有一人员表 (表名:peosons) drop table PERSONS; create table PERSONS ( PNAME VARCHAR2(50), CARDID VARCHAR2(18), ADDRESS VARCHAR2(100) ); insert into persons ( PNAME, CARDID, ADDRESS) values ( '张三', '430682199002121010', '深圳'); insert into persons ( PNAME,

mysql 删除重复数据

如题:mysql 数据库删除重复数据 因为是mysql 所以其他数据哭的命令在mysql 中是不能使用的.不要想当然的使用sql 脚本 delete from table1 where field1 in (select field1 from table1 group by field1 having count(field1) > 1) and rowid not in (select min(rowid) from table1 group by field1 having count(f

初探oracle删除重复记录,只保留rowid最小的记录

如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首先创建一个测试表. create table my_users( id number, username varchar2(20), sal number ) 2.插入测试数据 begin for i in 1..10 loop insert into my_users values(i,'carl

查询及删除重复记录的方法

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where peopleId  in (