Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Напишите мне скрипт за деньги  (Прочитано 826 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 1646
  • X-9000SC
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #15 : 01 Февраль 2018, 19:00:24 »
Код: Bash
  1. #!/bin/bash
  2.  
  3. YIP='167.9.106.116'    #свой айпишник
  4. PTS='8000'             #начало диапазона портов
  5. PTE='8020'             #конец диапазона портов
  6.                        #сильно большой диапазон не ставьте - долго выполняться будет
  7. TRY='3'                #на сколько портов должет постучаться бот
  8.  
  9. TMP=$(mktemp)
  10.  
  11. soun() {
  12. sort $1 | uniq  
  13. }
  14.  
  15. for i in $(seq $PTS $PTE); do
  16. grep -Eo "$YIP:$i ([0-9]{1,3}\.){3}[0-9]{1,3}" \
  17. "$1" | sed "s/$YIP://">> $TMP
  18. done
  19.  
  20. soun $TMP > ${TMP}_sus
  21.  
  22. while read j ; do
  23. CN=$(grep -c $j ${TMP}_sus)
  24. if ((  CN >= TRY )); then
  25. echo $j >> ${TMP}_ban
  26. fi
  27. done <<< $(cat ${TMP}_sus | cut -d\  -f2)
  28. [ ! -e ${TMP}_ban ] && echo 'Всё в порядке' && exit 0
  29. soun ${TMP}_ban > "${1}_banned"
  30. echo "Плохие IP:"
  31. cat  "${1}_banned"
  32. echo "Записано в ${1}_banned"
  33. rm $TMP ${TMP}_sus ${TMP}_ban &> /dev/null

Пробуйте

417263686c696e7578

Онлайн Ввысь

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #16 : 01 Февраль 2018, 19:04:47 »
Все равно спотыкается.

./ban.txt est.txt
grep: 90.35.238.197: No such file or directory
grep: 90.35.238.197: No such file or directory
grep: 90.35.238.197: No such file or directory
grep: 90.35.238.197: No such file or directory
grep: 90.35.238.197: No such file or directory
./ban.txt: line 24: ((: /tmp/tmp.sSL9czrpyI_sus:6: syntax error: operand expected (error token is "/tmp/tmp.sSL9czrpyI_sus:6")
Всё в порядке

файл

cat est.txt
167.9.106.116:8010 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8000 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8001 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8012 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8013 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8005 90.35.238.197:53378 ESTABLISHED
167.9.106.116:8070 90.35.238.197:53378 ESTABLISHED
167.9.106.116:7998 90.35.238.197:53378 ESTABLISHED

Не может влиять одинаковый порт на IP 90.35.238.197? У всех 53378

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 1646
  • X-9000SC
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #17 : 01 Февраль 2018, 19:10:57 »
а так? (просто в данный момент я на арче сижу, мож там заковыки какие)

Код: Bash
  1. #!/bin/bash
  2.  
  3. YIP='167.9.106.116'    #свой айпишник
  4. PTS='8000'             #начало диапазона портов
  5. PTE='8020'             #конец диапазона портов
  6.                        #сильно большой диапазон не ставьте - долго выполняться будет
  7. TRY='3'                #на сколько портов должет постучаться бот
  8.  
  9. TMP=$(mktemp)
  10.  
  11. soun() {
  12. sort $1 | uniq  
  13. }
  14.  
  15. for i in $(seq $PTS $PTE); do
  16. grep -Eo "$YIP:$i ([0-9]{1,3}\.){3}[0-9]{1,3}" \
  17. "$1" | sed "s/$YIP://">> $TMP
  18. done
  19. [ ! -e ${TMP} ] && echo 'Всё в порядке' && exit 0
  20. soun $TMP > ${TMP}_sus
  21.  
  22. while read j ; do
  23. CN=$(grep -c $j ${TMP}_sus)
  24. if ((  CN >= TRY )); then
  25. echo $j >> ${TMP}_ban
  26. fi
  27. done < <(cat ${TMP}_sus | cut -d\  -f2)
  28. [ ! -e ${TMP}_ban ] && echo 'Всё в порядке' && exit 0
  29. soun ${TMP}_ban > "${1}_banned"
  30. echo "Плохие IP:"
  31. cat  "${1}_banned"
  32. echo "Записано в ${1}_banned"
  33. rm $TMP ${TMP}_sus ${TMP}_ban &> /dev/null


Пользователь добавил сообщение 01 Февраль 2018, 19:13:12:
Не может влиять одинаковый порт
не, без разницы.
« Последнее редактирование: 01 Февраль 2018, 19:14:00 от ALiEN175 »
417263686c696e7578

Онлайн Ввысь

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #18 : 01 Февраль 2018, 19:13:16 »
./ban.txt est.txt
Плохие IP:
90.35.238.197
Записано в est.txt_banned

ура, товарищи)

получил что хотел, всем спасибо.

Оффлайн EvangelionDeath

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2538
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #19 : 01 Февраль 2018, 20:15:35 »
ALiEN175, я с своем варианте вносил правки и проверки))) А то реально ругалось))) В Ubuntu sh - симлинк на dash
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 1646
  • X-9000SC
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #20 : 01 Февраль 2018, 21:38:03 »
EvangelionDeath, да я уж понял, что баш разный бывает) Учту на будущее)

Пользователь добавил сообщение 01 Февраль 2018, 22:06:02:
Камрад Ввысь попросил еще белый список прикрутить. Выложу тоже, чтоб не потерялось, да и критика приветствуется.
Код: Bash
  1. #!/bin/bash
  2.  
  3. YIP='167.9.106.116'    #свой айпишник
  4. PTS='7777'             #начало диапазона портов
  5. PTE='8020'             #конец диапазона портов
  6.                        #сильно большой диапазон не ставьте - долго выполняться будет
  7. TRY='3'                #на сколько портов должет постучаться бот
  8. VIP='файл_с_белыми_ip'
  9.  
  10. TMP=$(mktemp)
  11.  
  12. soun() {
  13. sort $1 | uniq  
  14. }
  15.  
  16. for i in $(seq $PTS $PTE); do
  17. grep -Eo "$YIP:$i ([0-9]{1,3}\.){3}[0-9]{1,3}" \
  18. "$1" | sed "s/$YIP://">> $TMP
  19. done
  20.  
  21. [[ ! -e $TMP ]] && echo "Всё в порядке" && exit 0
  22.  
  23. if [[ -n "$VIP" ]] ; then
  24.  
  25. while read P; do
  26. [[ -z $P ]] && continue
  27. sed -i "/$P/d" $TMP
  28. done < "$VIP"
  29.  
  30. fi
  31.  
  32. soun $TMP > ${TMP}_sus
  33.  
  34. while read j ; do
  35. CN=$(grep -c $j ${TMP}_sus)
  36. if ((  CN >= TRY )); then
  37. echo $j >> ${TMP}_ban
  38. fi
  39. done < <(cat ${TMP}_sus | cut -d\  -f2)
  40. [ ! -e ${TMP}_ban ] && echo 'Всё в порядке' && exit 0
  41. soun ${TMP}_ban > "${1}_banned"
  42. echo "Плохие IP:"
  43. cat  "${1}_banned"
  44. echo "Записано в ${1}_banned"
  45. rm $TMP ${TMP}_sus ${TMP}_ban &> /dev/null
« Последнее редактирование: 01 Февраль 2018, 22:06:02 от ALiEN175 »
417263686c696e7578

Онлайн Ввысь

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #21 : 01 Февраль 2018, 22:53:04 »
Затестил с белым списком, работает).

Оффлайн EvangelionDeath

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2538
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #22 : 01 Февраль 2018, 23:25:43 »
Ввысь, ну мы же прежде чем предоставлять что-то тестируем) Просто ALiEN175 тестировал на своей системы, а там версия bash отличается, а то и отличается симлинк у sh =)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 1646
  • X-9000SC
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #23 : 01 Февраль 2018, 23:44:39 »
EvangelionDeath,
(Нажмите, чтобы показать/скрыть)
417263686c696e7578

Оффлайн EvangelionDeath

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2538
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Напишите мне скрипт за деньги
« Ответ #24 : 01 Февраль 2018, 23:59:40 »
ALiEN175,
(Нажмите, чтобы показать/скрыть)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

 

Страница сгенерирована за 0.22 секунд. Запросов: 23.