v-list-firewall-ban 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/bash
  2. # info: list firewall block list
  3. # options: [FORMAT]
  4. #
  5. # The function of obtaining the list of currently blocked ips.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. # JSON list function
  14. json_list() {
  15. IFS=$'\n'
  16. i=1
  17. objects=$(grep IP $VESTA/data/firewall/banlist.conf |wc -l)
  18. echo "{"
  19. while read str; do
  20. eval $str
  21. echo -n ' "'$IP'": {
  22. "IP": "'$IP'",
  23. "CHAIN": "'$CHAIN'",
  24. "TIME": "'$TIME'",
  25. "DATE": "'$DATE'"
  26. }'
  27. if [ "$i" -lt "$objects" ]; then
  28. echo ','
  29. else
  30. echo
  31. fi
  32. ((i++))
  33. done < <(cat $VESTA/data/firewall/banlist.conf)
  34. echo '}'
  35. }
  36. # SHELL list function
  37. shell_list() {
  38. IFS=$'\n'
  39. echo "IP CHAIN TIME DATE"
  40. echo "-- ----- ---- ----"
  41. while read str; do
  42. eval $str
  43. echo "$IP $CHAIN $TIME $DATE"
  44. done < <(cat $VESTA/data/firewall/banlist.conf)
  45. }
  46. # PLAIN list function
  47. plain_list() {
  48. IFS=$'\n'
  49. while read str; do
  50. eval $str
  51. echo -e "$IP\t$CHAIN\t$TIME\t$DATE"
  52. done < <(cat $VESTA/data/firewall/banlist.conf)
  53. }
  54. # CSV list function
  55. csv_list() {
  56. IFS=$'\n'
  57. echo "IP,CHAIN,TIME,DATE"
  58. while read str; do
  59. eval $str
  60. echo "$IP,$CHAIN,$TIME,$DATE"
  61. done < <(cat $VESTA/data/firewall/banlist.conf)
  62. }
  63. #----------------------------------------------------------#
  64. # Action #
  65. #----------------------------------------------------------#
  66. # Listing data
  67. case $format in
  68. json) json_list ;;
  69. plain) plain_list ;;
  70. csv) csv_list ;;
  71. shell) shell_list |column -t ;;
  72. esac
  73. #----------------------------------------------------------#
  74. # Vesta #
  75. #----------------------------------------------------------#
  76. exit