myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Отправка сообщения в ПМ, в зависиммости от IP

Теги
Нет тегов для показа
MaxFox
сообщение 21.4.2011, 11:01
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Прошу помощи у местных гуру, в написании следующего скрипта. Необходимо, отправлять сообщения в ПМ только тем юзерам, IP которых не попадают в определенные промежутки IP. Отправлять по команде, из менюшки... собственно, честно не понимаю некоторых вещей, так и ненагуглил по этой теме, поэтому и прошу помочь.
мои изыскания на данную тему приведены ниже...

Раскрывающийся текст
Код
-- IP адреса кому рассылка не производится
local tRanks = {
    {"10.0.0.0","10.255.255.255"},
    {"192.168.0.0","192.168.255.255"},
}
-- Профили которые могут осуществлять расссылку
tProfiles = {
    [0] = 1,
    [1] = 0,
    [2] = 0,
    [3] = 0,
    [-1] = 0,
}
---------------------------------------------------------------
function iIp(sIP)
        local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$"
        return a * 16777216 + b * 65536 + c * 256 + d
end

function OnStartup()
        for k, v in ipairs(tRanks) do
            tRanks[k][1], tRanks[k][2] = iIp(v[1]), iIp(v[2])
        end
    sBot = SetMan.GetString(21)
end

function ChatArrival(tUser, sData)
    if tProfiles[tUser.iProfile] == 1 then
    local cmd = sData:match"%b<>%s+(%S+).*|"
    if sCmd then
        if sCmd == "!pmmsg" then
                local t = Core.GetOnlineUsers() or {}
                local iIP = iIp(tUser.sIP)
                    local bIsLocal = false
                    for _, v in ipairs(tRanks) do
                        if iIP > v[1] and iIP < v[2] then
                            bIsLocal = true
                            break
                        end
                    end
                    if not bIsLocal then
                        Core.SendPmToNick(tUser.sNick, sbot, sMsg)
                    end
        return true
        end
    end
    else
        Core.SendToUser(tUser, "<"..sBot.."> *** Вам недоступна данная функция")
    end
end


function OpConnected(tUser)
        Core.SendToUser(tUser, "$UserCommand 1 3 Управление\\Рассылка сообщений\\Сообщение в приват интернет пользователям $<%[mynick]> !pmmsg %[line:Сообщение:]|")
end
Go to the top of the page
+Quote Post
Ksan
сообщение 21.4.2011, 11:31
Сообщение #2


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




1. local cmd = sData:match"%b<>%s+(%S+).*|" -- тут надо вместо cmd --> sCmd (исходя из последующего кода)
2. Ты не вытащил sMsg из sData и не подготовил его для дальнейшего применения в коде.
3. И да, зря ты сразу просле шапки функции ChatArrival(tUser, sData) написал проверку на право, это надо было сделать при отправке команды, примерно так:
Код
if sCmd == "!pmmsg" and tProfiles[tUser.iProfile] == 1 then
логику завершения проверки додумай сам.
4. В функции OpConnected(tUser) желательно создать проверку права на получение меню, как при отправке команды, иначе меню получат операторы, не имеющие права на команду, а это некорректно.
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 12:32
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Ksan @ 21.4.2011, 11:31) *
1. local cmd = sData:match"%b<>%s+(%S+).*|" -- тут надо вместо cmd --> sCmd (исходя из последующего кода)
2. Ты не вытащил sMsg из sData и не подготовил его для дальнейшего применения в коде.
3. И да, зря ты сразу просле шапки функции ChatArrival(tUser, sData) написал проверку на право, это надо было сделать при отправке команды, примерно так:
Код
if sCmd == "!pmmsg" and tProfiles[tUser.iProfile] == 1 then
логику завершения проверки додумай сам.
4. В функции OpConnected(tUser) желательно создать проверку права на получение меню, как при отправке команды, иначе меню получат операторы, не имеющие права на команду, а это некорректно.

2. Как прально вытащить и подготовить?
Go to the top of the page
+Quote Post
Артём
сообщение 21.4.2011, 12:41
Сообщение #4


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




MaxFox, SendToRanges в этом скрипте можно отправлять сообщения интернет пользователям не трогая локальных и наоборот, даже отдельным диапазонам можно отправлять, чем он тебе не понравился?
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 12:50
Сообщение #5


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Артём @ 21.4.2011, 12:41) *
MaxFox, SendToRanges в этом скрипте можно отправлять сообщения интернет пользователям не трогая локальных и наоборот, даже отдельным диапазонам можно отправлять, чем он тебе не понравился?

1. В описание скрипта не вижу "можно отправлять всем, кроме указанных диапозонов"
2. Я его увидел 5 минут назад, еще до твоего поста.
Go to the top of the page
+Quote Post
Артём
сообщение 21.4.2011, 13:02
Сообщение #6


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Цитата
1. В описание скрипта не вижу "можно отправлять всем, кроме указанных диапозонов"

файл SendToRanges.txt с диапазонами тебе в помощь... Какие укажешь диапазоны, те и будут получать
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 13:06
Сообщение #7


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Артём @ 21.4.2011, 13:02) *
файл SendToRanges.txt с диапазонами тебе в помощь... Какие укажешь диапазоны, те и будут получать

да это и ежику понятно...
а теперь подумай, что проще, записать те диапозоны которые не будут получать, или записать ВЕСЬ спектр диапозонов интернета, кроме тех которые не должны получать? как бэ... идиотский труд... на мой взгляд... почти как удаление гланд, через попу =)
Go to the top of the page
+Quote Post
Артём
сообщение 21.4.2011, 13:09
Сообщение #8


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




MaxFox, сам себе ищешь трудности big_smile1.gif проще указать в локальном те кому не хочешь отправлять, а в интернет кому хочешь, а потом через менюшку отправлять сообщения только Интернет, и всё! Или для тебя и это
Цитата
идиотский труд
? bad_smile.gif
P.S. Вот тебе пример, IP моей локалки и остальные-интернет IP, если отправлять буду интернет, то получат все кроме локальных
[Локальная сеть]
109.86.0.0-109.87.255.255
178.150.0.0-178.151.255.255
[Интернет]
0.0.0.0-109.85.255.255
109.88.0.0-178.149.255.255
178.152.0.0-255.255.255.255
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 13:31
Сообщение #9


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Артём @ 21.4.2011, 13:09) *
MaxFox, сам себе ищешь трудности big_smile1.gif проще указать в локальном те кому не хочешь отправлять, а в интернет кому хочешь, а потом через менюшку отправлять сообщения только Интернет, и всё! Или для тебя и это ? bad_smile.gif
P.S. Вот тебе пример, IP моей локалки и остальные-интернет IP, если отправлять буду интернет, то получат все кроме локальных
[Локальная сеть]
109.86.0.0-109.87.255.255
178.150.0.0-178.151.255.255
[Интернет]
0.0.0.0-109.85.255.255
109.88.0.0-178.149.255.255
178.152.0.0-255.255.255.255

согласен, так работать будет, но это неккоректно... ИМХО
читать тут
Go to the top of the page
+Quote Post
Ksan
сообщение 21.4.2011, 13:34
Сообщение #10


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




В любом случае достаточно одного списка (для удобства - который короче) big_smile.gif
Логика отправления - либо отправлять всем, кроме айпи из этого списка, либо отправлять только по айпи из этого списка.
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 13:35
Сообщение #11


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Ksan @ 21.4.2011, 13:34) *
В любом случае достаточно одного списка (для удобства - который короче) big_smile.gif
Логика отправления - либо отправлять всем, кроме айпи из этого списка, либо отправлять только по айпи из этого списка.

так что насчет пральной подготовки?
лучше ссыль, где можно подробно почитать... пока курю маны...
Go to the top of the page
+Quote Post
Ksan
сообщение 21.4.2011, 13:57
Сообщение #12


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Код
local sCmd, sMsg = sData:match"%b<>%s+(%S+)%s+(.*)|"

Где-то так.
С последним знаком разберёшься сам, думаю.
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 13:59
Сообщение #13


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Ksan @ 21.4.2011, 14:57) *
Код
local sCmd, sMsg = sData:match"%b<>%s+(%S+)%s+(.*)|"

Где-то так.
С последним знаком разберёшься сам, думаю.

учитывая, что в этой строке для меня нихрена не понятно... конечно разберусь extreme_sexy_girl.gif
Go to the top of the page
+Quote Post
Alexey
сообщение 21.4.2011, 14:56
Сообщение #14


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Как-то так: Прикрепленный файл  Msg2Inet.lua ( 1.63 килобайт ) Кол-во скачиваний: 12


UPD: Обновил.

Сообщение отредактировал Alexey - 21.4.2011, 15:29
Go to the top of the page
+Quote Post
MaxFox
сообщение 21.4.2011, 19:48
Сообщение #15


Продвинутый участник
****

Группа: Пользователи
Сообщений: 120
Регистрация: 25.5.2009
Пользователь №: 3 432
Спасибо сказали: 20 раз




Цитата(Alexey @ 21.4.2011, 15:56) *
Как-то так: Прикрепленный файл  Msg2Inet.lua ( 1.63 килобайт ) Кол-во скачиваний: 12


UPD: Обновил.

спасибо, будем изучать...
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Как получить сообщения из чата
6 Radzhab 10 377 13.9.2012, 23:01 Посл. сообщение: mariner
Closed Ребята скинте мне скрипт котри может отправит сообщения все от любого ника Плизз
Ребята скинте мне скрипт котри может отправит сообщения все от любого
2 Davrik 5 844 15.11.2011, 8:35 Посл. сообщение: Accelerator
No New Posts Отправка информации с сайта по запросу
Отправка информации с сайта по запросу
4 sania 7 828 28.5.2011, 9:51 Посл. сообщение: sania
No New Posts Отправка личек по профилям
Отправка сообщений в личку по профилям
11 sania 12 158 8.4.2011, 23:25 Посл. сообщение: Ksan
No New Posts Теряются сообщения. Не пойму.
помогите
1 djlab 6 240 10.1.2011, 10:34 Посл. сообщение: Vizunchik
No New Posts Скрипт отсылки сообщения в ЛС
ХЕЛП незнаю где ощибка!!!
1 Drakula 5 782 31.10.2010, 14:04 Посл. сообщение: Damaks
No New Posts Определение профиля получателя сообщения
7 Damaks 9 722 16.8.2010, 20:46 Посл. сообщение: Damaks
No New Posts Topic has attachmentsЗапрет пустого сообщения
API 2
4 WINS 7 722 20.7.2010, 15:20 Посл. сообщение: WINS
No New Posts Отправка POST-запросов на вебсервер
0 HackFresse 4 744 29.6.2010, 9:18 Посл. сообщение: HackFresse
No New Posts Topic has attachmentsОтправка сообщений в диапазон IP
12 SAG 13 516 15.4.2010, 16:05 Посл. сообщение: SAG
No New Posts Отправка в ЛС боту
выводится почему то всем...
0 TIRAN 4 260 13.4.2010, 21:45 Посл. сообщение: TIRAN
No New Posts Topic has attachmentsотсылка сообщения при подключении только локальному диапозону
1 Saymon21 6 043 25.1.2010, 18:35 Посл. сообщение: Артём
No new Помогите с одним вопросиком по скрипту (Отправка каждой строки от бота)
18 DrakonSP 19 892 16.1.2010, 21:02 Посл. сообщение: DrakonSP
No New Posts Topic has attachmentsСообщения дня
9 knuckles 11 776 13.1.2010, 23:32 Посл. сообщение: random name
No new Topic has attachmentsот:Как по команде сделать показ сообщения
консультация
19 Uncle_Dif 20 142 15.12.2009, 11:47 Посл. сообщение: Uncle_Dif

 



RSS Сейчас: 16.4.2024, 20:48