如何使用Python在iptables / IP集中放置ips的CSV列表?

时间:2016-04-08 08:43:25

标签: python bash csv iptables

我想使用this CSV file来阻止列表中的所有IP。 CSV文件中的条目是IP范围。如何从文本中分离IP范围,并将这些IP范围添加到iptables,并使用规则删除与这些IP的所有连接。

顺便说一下,我认为最适合用于大型IP范围http://ipset.netfilter.org/index.html

2 个答案:

答案 0 :(得分:1)

你需要python netaddr模块

import netaddr

with open('ipranges.txt','r') as f:
    for line in f:
        startip,endip=line.split(',')[:2]
        print 'iptables -I INPUT -s {} -j DROP'.format(netaddr.iprange_to_cidrs(startip, endip)[0])

答案 1 :(得分:0)

或许可以查看https://docs.python.org/3/library/ipaddress.html来操纵您的IP地址。 ipaddress.summarize_address_range(first,last)可以很好地生成iptables规则。