Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ проверка повторяющихся ip

Автор: *FoxMalder* 20.5.2009, 2:00

можно скриптик который по запросу проверят юзеров и выдает:
с такого ip то .. сидят такие то ники и списочек в столбик)?

Автор: Setuper 20.5.2009, 3:06

отсортируй по столбцу ip адресов и получишь нужный результат.

Автор: *FoxMalder* 20.5.2009, 12:34

ты издеваешься? на хабе более 2.5к юзеров..

Автор: Setuper 20.5.2009, 13:51

Это ты издеваешься! Сколько бы пользователей не было, сортируешь по ip и прописываешь в поле нужный ip, и остаются только те пользователи, у которых данный ip.

Ты админ, а не умеешь юзать простейшие функции своего клиента!


Автор: *FoxMalder* 20.5.2009, 14:32

я совершенно не про то..
по команде скрипт проверят всех юзеров на хабе на наличие повторяющихся ip и выдает

с таким то ip
сидят такие то ники...


с другим ip
сидят другие ники

теперь понятно?

Автор: Setuper 20.5.2009, 14:53

Теперь понятно. Надо сразу понятно говорить.

Код
function GetDoubles()
  local tUsers, tIPs = {}, {}
  for k, v in ipairs(Core.GetOnlineUsers()) do
    local sIP, sNick = v.sIP, v.sNick
    local sUs = tUsers[sIP]
    if not sUs then
      tUsers[sIP] = sNick
    else
      tIPs[sIP] = tIPs[sIP] or {}
      tIPs[sIP][sUs], tIPs[sIP][sNick] = true, true
    end
  end
  
  local sMsg = ''
  for k, v in pairs(tIPs) do
    sMsg = sMsg..("\nip: %s\n"):format(k)
    for n in pairs(v) do
      sMsg = sMsg..("\t%s\n"):format(n)
    end
  end
  
  return sMsg
end

Автор: *FoxMalder* 20.5.2009, 14:58

и как он работает? ну уж извините

Автор: Setuper 20.5.2009, 15:10

Код
function ChatArrival(tUser, sData)
  if sData:find"%b<> %+getdoubles|" then
    Core.SendToUser(tUser, GetDoubles())
  end
end


команда: +getdoubles

Автор: *FoxMalder* 20.5.2009, 15:15

а на 1апи?

Автор: Setuper 20.5.2009, 15:58

А про апи1 следует уже забыть)))))

Автор: *FoxMalder* 20.5.2009, 18:17

ну у меня хаб тока апи1 воспринимает)

Автор: Wariner 20.5.2009, 18:27

хватит упрямится! это просто тупость! это всё равно что пользовать 98 винду....

Автор: mariner 20.5.2009, 18:37

Nobody cares, FOX =)

Автор: Артём 20.5.2009, 18:41

electric_shock.gif что-то оно не работает...

Автор: Setuper 20.5.2009, 18:44

Не работает - значит у тебя на хабе нету ников с одинаковыми ip big_smile.gif

Автор: Berkut 20.5.2009, 18:47

Цитата(Wariner @ 20.5.2009, 19:27) *
хватит упрямится! это просто тупость! это всё равно что пользовать 98 винду....

Веришь, у меня комп на работе ничего сильнее 98 винды не тянет =)

Автор: Артём 20.5.2009, 18:55

та оно команду в чат пропускает,а работать не работает)))

Автор: *FoxMalder* 20.5.2009, 18:58

Цитата(Wariner @ 20.5.2009, 19:27) *
хватит упрямится! это просто тупость! это всё равно что пользовать 98 винду....

я бы с радостью перешел бы на 4 птоку но тогда придется переводить ~40 скриптов а с этим будут большие проблемы

Автор: Setuper 20.5.2009, 19:03

Цитата(Артём @ 20.5.2009, 19:55) *
та оно команду в чат пропускает,а работать не работает)))


Ну так напиши return true. Что же все такие беспомощные?
Я не стал писать ради красоты, написал ради реализации!

Автор: Wariner 20.5.2009, 19:04

сколько ты тут сидишь уже давно бы сделал это....

Автор: Setuper 20.5.2009, 19:12

Код
function ChatArrival(tUser, sData)
  if sData:find"%b<> %+getdoubles|" then
    local s = GetDoubles()
    Core.SendToUser(tUser, s~='' and s or "Нет совпадений")
    return true
  end
end

Автор: *FoxMalder* 20.5.2009, 19:31

Цитата(Wariner @ 20.5.2009, 20:04) *
сколько ты тут сидишь уже давно бы сделал это....

ну не приучен я такое делать.. вот если сделать что нибудь руками то эт запросто... а с этим не судьба(

Автор: Артём 20.5.2009, 21:04

beat_shot.gif как не работал так и не работает.... незнаю может я неправельно его "собрал"

Автор: prapor 21.5.2009, 2:29

Цитата(Артём @ 20.5.2009, 22:04) *
beat_shot.gif как не работал так и не работает.... незнаю может я неправельно его "собрал"
Тож Самое. Ошибок нет, в чат ток команда проходит

Автор: Setuper 21.5.2009, 20:25

Пардон, это моя ошибка.
Не учёл магию big_smile.gif

Код
if sData:find"%b<> %+getdoubles|" then

Автор: Артём 21.5.2009, 21:08

Цитата(Setuper @ 21.5.2009, 20:25) *
Код
if sData:find"%b<> %+getdoubles|" then


:P а теперь работает)))
ip: 10.27.0.18
Ведьмак
Tipo4ek

ip: 10.8.12.66
sdfsdf
•S-75•

прикольно!

Автор: prapor 21.5.2009, 21:55

Цитата(Setuper @ 21.5.2009, 21:25) *
Пардон, это моя ошибка.
Не учёл магию big_smile.gif

Код
if sData:find"%b<> %+getdoubles|" then

Я не понял в чем прикол, но скрипт заработал shocked.gif

Автор: Отшельник 8.6.2009, 12:44

2Setuper
А как сделать что бы был поиск определённых IP (.... найти IP\\ ввести опред. IP.... и чтобы показало сколько на запрашуемом IP сидят юзеров)как добавить к скрипту такую функцию?

Автор: Otshelnik-Fm 8.6.2009, 15:41

А вот это бред. справа в клиенте вводишь ip и он показывает кто сидит

Автор: Отшельник 8.6.2009, 17:53

эм..... nothing.gif ну да...)) прогнал немного...