Регистрация | Вход
[ Главная · Новые сообщения ]
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Вопросы по скриптам
Vladislav 20.03.13 18:06 #331
Добавить можно, но лень на данный момент и я что-то подобное практиковал не эффективно было ни кто это не читает, а вот с киком заставляет обратить внимания. Чтоб банил за имя это надо каждого кто входит хуизить, а это не очень хорошо, и обойти можно, ведь имя можно сменить не отсоединяясь от сервера, и что тогда каждую минуту всех хуизить)
Jake 20.03.13 18:18 #332
Цитата
и что тогда каждую минуту всех хуизить)
Нет, только тогда, когда юзер заходит на канал. В Руснете увидел на канале помощи, как один юзер на канал зашёл, и бот его сразу забанил за то что у него мат в Имени был )
Vladislav 03.04.13 13:17 #333
Авторизация в одноклассниках (МЫЛО и ПАРОЛЬ подставьте свои):

Код
# Заходим на сайт, вводим логин и пароль и получаем куки:
set id [::http::meta [::http::geturl http://www.odnoklassniki.ru/dk?cmd=AnonymLogin&\;st.cmd=anonymLogin&\;tkn=941 -timeout 20000 -query [::http::formatQuery st.posted set st.email МЫЛО st.password ПАРОЛЬ submit ""]]]
# Берём только то что нам нужно для идентификации:
regexp -nocase -- {.*JSESSIONID=(.*?);.*} $id -> id
# Заходим по заданной сылке идентифицированные уже:
set html [::http::geturl http://www.odnoklassniki.ru/ -binary 1 -timeout 20000 -headers [list Cookie "JSESSIONID=$id"]]
# Приводим полученные данные для последующего анализа:
set data [encoding convertfrom utf-8 [regsub -all -- {\n|\r|\t|\v} [::http::data $html] ""]]; ::http::cleanup $html
# Сохраним в файлик то что получили:
::ccs::SaveFile ok.txt [list $data]
zxcv 06.04.13 00:18 #334
Имеем файл примерно следующего вида:

Цитата
Fri Apr  5 17:47:20 2013 us=121823 Client/46.53.195.37:3761 SENT CONTROL [Client]: 'PUSH_REPLY,ping 10,ping-restart 120,ifconfig 192.168.251.21 255.255.255.0' (status=1)
Fri Apr  5 17:53:15 2013 us=508263 Client/37.55.37.171:10013 SENT CONTROL [Client]: 'PUSH_REPLY,ping 10,ping-restart 120,ifconfig 192.168.251.22 255.255.255.0' (status=1)
Fri Apr  5 17:56:54 2013 us=543803 Client/95.111.208.249:1194 SENT CONTROL [Client]: 'PUSH_REPLY,ping 10,ping-restart 120,ifconfig 192.168.251.21 255.255.255.0' (status=1)


Это лог openvpn сервера. При подключении клиентов каждому выдается внутренний айпишник вида 192.168.251.xxx

Требуется узнать внешний ip адрес клиента, зная внутренний. То есть 192.168.251.21 мы знаем, а 95.111.208.249 вывести на канал. Пишу следующий скрипт:

Код
bind pub - !ip par

proc par {nick uhost hand chan text} {
set text [lindex [split $text] 0]
set file "/etc/openvpn/openvpn.log"
set rfile [read [open $file r]]
set rez [lindex [regexp -all -inline -- "Client\/(.*?):1194 SENT CONTROL.*?PUSH_REPLY,ping 10,ping-restart 120,ifconfig $text 255.255.255.0" $rfile] end]
putserv "PRIVMSG $chan :$rez"
}


Перепробовал различные маски - не работает. И вывести необходимо только последнее совпадение, так как за день один и тот же клиент может подключиться несколько раз. Это мы делаем с помощью lindex ... end
Vladislav 06.04.13 01:00 #335
В regexp нельзя вставлять переменную, когда открываешь файл его надо закрывать и другие ошибки есть, я бы сделал так:

Код
bind pub - !ip par   
proc par {nick uhost hand chan text} {
if {$text == ""} {putserv "NOTICE $nick :Формат: !ip <ip>"; return}   
set maska "Client/(.*?):.*?ifconfig [lindex [split $text] 0] 255"
set filep [open /etc/openvpn/openvpn.log r]   
set rez ""; foreach line [split [read $filep] \n] { if {[regexp -nocase -- $maska $line -> ip]} {set rez $ip} }   
close $filep
putserv "PRIVMSG $chan :$rez"   
}
con 13.04.13 13:02 #336
Доброго времени суток! Вот решил написать скрипт сервиса HostServ

Что умеет данный скрипт:
1) Устанавливает хост
2) Создает и пишет в базу список запрещенных хостов
3) Банит после установки хоста

Прошу помочь дописать скрипт:
1) Бан пусть ставит на время (7 дней)
2) Запрещенные хосты ставить запрещает
3) Хосты записанные Кириллицой запрещает
4) ИП-адреса ставить запрещает
vhostserv.tcl (3.0 Kb)
Vladislav 13.04.13 23:44 #337
Разве хост устанавливается с идентом? Наверно так должно быть !vhset <virtualnyi.host>? зачем там собака?

В списке запрещённых хостов зачем нужен канал? При удалении он не учитывается, видимо его там не должно быть.

Код

bind pub - !vhset       vhsetpub  
bind pub m !restricted+ restrictedpluspub  

set restricteds "data/restricted.txt"

proc vhsetpub {nick uhost hand chan text} {  
global restricteds  
set host [lindex [split [string trim [string map { {}} [stripcodes cubr $text]]]] 0]  
if {$host == ""} {putserv "NOTICE $nick :Формат: !vhset <ident@virtualnyi.host>"; return}  
if {[regexp -nocase -- {[а-я]} $host]} {putserv "NOTICE $nick :Кирилица в хосте запрещена."; return}  
if {[regexp -- {[0-9\.]{5,30}} $host]} {putserv "NOTICE $nick :Хост не должен походить на ip."; return}  
if {[file exists $restricteds]} {  
set rfilep [open $restricteds r]; set data [lrange [split [read $rfilep] \n] 0 end-1]; close $rfilep; foreach line $data {  
if {[string match -noc "[lindex $line 0]" $host]} {putserv "NOTICE $nick :Этот хост запрещён."; return}
} }
putserv "HostServ set $nick $host"  
putserv "NOTICE $nick :Ваш виртуальный хост: \002$host\002 Для дальнейшей активации вашего виртуального хоста используйте команду: \002/hs on\002"  
newchanban $chan $nick!*@* $::botnick "Увидимся через 7 дней." 10080; newchanban $chan *!$uhost $::botnick "Увидимся через 7 дней." 10080  
if {[string match "*@*" $host]} {newchanban $chan *!$host $::botnick "Увидимся через 7 дней." 10080} {newchanban $chan *!*@$host $::botnick "Увидимся через 7 дней." 10080}
}

proc restrictedpluspub {nick uhost hand chan text} {
global restricteds
set text [lindex [split [string trim [string map { {}} [stripcodes cubr $text]]]] 0]
if {$text == ""} {putserv "NOTICE $nick :Формат: !restricted+ <хост>. Можно использовать '*' и '?'."; return}
if {![file exists $restricteds]} {set f [open $restricteds w+]; close $f}
set rfilep [open $restricteds a+]; puts $rfilep $text; close $rfilep
putserv "NOTICE $nick :\002$text\002 успешно добавлен."
}
con 14.04.13 08:41 #338
Спасибо
Идент в виртуальном хосте именно в той сети где я сижу не запрещен
А что если добавить чтоб проверяло заявки на хосты..
Vladislav 14.04.13 11:11 #339
Переделай claim.tcl
con 14.04.13 19:27 #340
Цитата
<con> !restricted
-vHoster- root
-vHoster- staff
-vHoster- *staff*
-vHoster- *root*
<test> !vhset staff@staff.staff
* vHoster меняет режим: +b test!*@*
* test кикнут пользователем vHoster (Banned: Увидимся через 7 дней.)

Почему restricted не пашет?
Vladislav 14.04.13 20:43 #341
Потому что он ищет 100% совпадение, без маски. Обновил прошлое сообщение.
con 20.04.13 09:45 #342
Бот мой не обновляется
 
Цитата
[13:42:09] Tcl error [::updatew::pub]: invalid command name "::updatew::numgrp"
Vladislav 20.04.13 11:15 #343
Пишет что нет такой процедуры в скрипте, хотя она там есть, и у меня работает. !обновить новое напиши, когда появится ошибка сделаешь !restart и посмотришь стало ли работать. обновить скрипты он должен в том числе и этот скрипт, просто сообщить тебе об этом не может.
con 21.04.13 06:19 #344
все равно
Vladislav 21.04.13 11:01 #345
Тогда напиши !загрузка update.tcl загрузиться должен один только скрипт который в папке system, если загрузит другие скрипты, то удали их.

После этой ошибки напиши .tcl $::errorInfo в PuTTy. Так же можно написать !tcl ::updatew::numgrp 1 в ответ должен получить 1 если есть такая процедура.
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Поиск: