1. 如何在Linux下大量屏蔽恶意IP地址
|#!/bin/bash
#dmesg_udp_bad_checksum_from_ip_deny.sh
#failed_password_for_invalid_ip_deny.sh
while [ ture ];
do
#failed_password_for_invalid_ip_deny.sh
DENY_IP=`grep "Failed password" /var/log/secure | sed 's/^.*::ffff://g' | sed 's/port.*$//g'`
for i in $DENY_IP
do
if [ ! -n "`iptables -L -vn |grep $i`" ]; then
iptables -t filter -A INPUT -i eth0 -s $i -j DROP
fi
done
#dmesg_udp_bad_checksum_from_ip_deny.sh
DENY_IP1=`dmesg |grep "UDP: bad checksum." | sed 's/^.*From //g' | sed 's/:.*$//g'`
for j in $DENY_IP1
do
if [ ! -n "`iptables -L -vn |grep $j`" ]; then
iptables -t filter -A INPUT -i eth0 -s $j -j DROP
fi
done
sleep 30s
done
仅供参考
防止外网用内网IP欺骗
[root@test]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
[root@test]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@test]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
2. sed如何把本机的ip地址替换文本
需求说清楚点吧
3. sed 将文本中每行的固定IP替换为特定IP地址,需要怎么写 sed 's/X.X.X.X/X.X.X.[1-9]\{1,3\}/g' X.txt
sed 's/\(X\.\)\(X\.\)\(X\.\)X/\1\2\3.1/g' X.txt
4. 怎样用awk,sed等抽取日志中的IP
因为不知道你的日志格式,可以参考:
ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
5. linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何实现
sed -i 's/\(IP=\)\S\S*/\1102.117.2.23/' filename
注:
1)将不变的部分放入带反斜杠的一对括号 \( \) 中并在替换时用 \1 引用。回
2)\S用于匹配除单个空答格符之外的所有字符。
awk -F"=" '{if($1=="IP")print("IP=102.117.2.23")}' filename > filename.new 2>/dev/null
6. shell 怎么取出ip地址中的数字
使用sed命令替换即可:
#ip转换后结果存储在new_ip
ip="111.111.111.111"
#输出结果:111111111111
new_ip=`sed 's/.//g' $ip`
7. 关于linux的sed用法。如何替换特殊字符,如IP=192.168.0.1替换成IP=117.112.3.8
sed 's/\(IP=\).*/\1117.112.3.8/g'
. 任意字符
* 任意次数
\1 输出第一保存
\(\) 第一保存范围
8. 怎么用Linux 正则表达式过滤出IP地址
可使来用这个命令:ifconfig |sed -n 's#^源.*r:\(.*\) Bc.*$#\1#gp'
简单说明一下:
sed 's###g' 这个是基础表达式 -n 取消默认输出 ^.*r:表示在r:之前所有内容 \是转义字符 \( .*\)表示所选内容
Bc.*$表示在Bc之后所有内容 \1 表示前面小括号里面的内容 P 表示打印输出
[root@localhost home]# ifconfig |sed -n 's#^.*r:\(.*\) B.*t:\(.*\) Ma.*$#\1\t\2#gp' 这是同时输入 IP 和电子掩码 的命令 。 学脚本编程,来看看 《linux就该这么学》
9. linux下用sed先 搜索含有IPV6INIT的行,然后再修改IPV6INIT=yes为IPV6INIT=no 如何用sed一次性完成
什么意思?
是将文抄件里的IPV6INIT=yes改为IPV6INIT=no呢,袭
还是找出含有IPV6INIT的行,然后把这些行集中到一个文件里,然后修改?
如果是前者:
sed -i -e 's/IPV6INIT=yes/IPV6INIT=no/' PATH/FILE
10. 正则表达式匹配ip地址并替换
sed不支持d的数字表达,另外要加-r参数: