30 lines
		
	
	
		
			475 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			475 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # iptables/ip6tables switch
 | |
| LINE=$*
 | |
| 
 | |
| RESULT=`echo $LINE | egrep " ([0-9]{1,3}\.){3}[0-9]{1,3}" | wc -l`
 | |
| RESULT6=`echo $LINE | egrep "(::[A-Fa-f0-9])|((:[A-Fa-f0-9]{1,4}){2,})" | wc -l `
 | |
| 
 | |
| if [ $RESULT -eq "1" ]; then
 | |
|   # IPv4
 | |
|   iptables $LINE
 | |
|   ERRCODE=$?
 | |
| 
 | |
| elif [ $RESULT6 -eq "1" ]; then
 | |
|   # IPv6
 | |
|   ip6tables $LINE
 | |
|   ERRCODE=$?
 | |
| 
 | |
| else
 | |
|   # IPv4 + IPv6
 | |
|   iptables $LINE
 | |
|   ERRCODE=$?
 | |
|   ip6tables $LINE
 | |
|   if [ $? -ge "1" ]; then
 | |
|     ERRCODE=$?
 | |
|   fi
 | |
| 
 | |
| fi
 | |
| 
 | |
| exit $ERRCODE
 |