Zer0Galaxy Автор темы 2 187 Опубликовано: 28 апреля, 2015 (изменено) В Центре поиска внеземного разума (ЦПВР) начал работу роутер сети OpenNet. Зона уверенного покрытия охватывает банк, спаун и поселок Кузякино. Подключиться к роутеру можно при помощи беспроводной сетевой карты и библиотеки opennet.lua (см. под спойлером) -- Библиотека OpenNet для WiFi-клиента local component=require("component") local event = require("event") local opennet = {} local ONcard local LocalIP local Router local ONport=1 local ONlong=2 local maxPacketSize function opennet.ver() return "3.1" end function opennet.getIP() if not component.isAvailable("modem") then ONcard=nil return nil, "Сетевая карта не обнаружена" end ONcard=component.modem ONcard.open(ONport) ONcard.open(ONlong) maxPacketSize=ONcard.maxPacketSize()-100 local ok,err=ONcard.broadcast(ONport,"", "", "getip") if not ok then return ok, err end local Dist=math.huge LocalIP=nil Router=nil while true do local ev, addr, rout, _, dist, locip, _, mess = event.pull(1,"modem_message") if ev then if dist<Dist and addr == ONcard.address and mess == "setip" then LocalIP=locip Router=rout Dist=dist end else if LocalIP then return LocalIP, Dist else return nil, "Нет ответа от WiFi роутера" end end end end function opennet.send(recIP, ... ) if not ONcard or not Router then return nil, "Сетевая карта не инициализирована" end return ONcard.send(Router, ONport, recIP, LocalIP, ...) end function opennet.receive(timeout) local ev repeat ev = {event.pull(timeout,"modem_message")} if not ev[1] then return nil end until ev[2] == ONcard.address return table.unpack(ev,7) end function opennet.sendrec(recIP, ... ) local ok,err=opennet.send(recIP, ... ) if ok then return opennet.receive(3) else return ok,err end end ----------------------------------------------------------------------- return opennet Описание функций библиотеки дано в начале темы. За тем исключением, что функция getIP возвращает, помимо IP, расстояние до роутера. Следите, что бы это расстояние не превышало 350. Изменено 28 апреля, 2015 пользователем Zer0Galaxy 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 28 апреля, 2015 В Центре поиска внеземного разума (ЦПВР) начал работу роутер сети OpenNet. Зона уверенного покрытия охватывает банк, спаун и поселок Кузякино. Подключиться к роутеру можно при помощи беспроводной сетевой карты и библиотеки opennet.lua ... И в одночасье с этим в результате сильнейших магнитных солнечных бурь была полностью выведена из строя вся микроэлектроника Wi-Fi точек доступа и сетевые свитчи фирмы OpenComputers. Отремонтировать их теоретически можно, но генераторы тактовой частоты и микроконтроллеры Atmel Wi-Fi SoC и МК SAM D21 на базе ARM Cortex-M0+ поставлялись нам из солнечной системы Ахерна́р — альфа Эридана, за 13 парсеков от нас. Скрафтить эти микроконтроллеры самим у нас нет никакой возможности. Поэтому на ИТ Wi-Fi точки доступа и сетевые свитчи теперь пока бесполезны. alexcc.Mods.bug:kill(switch_access_point_network) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 И в одночасье с этим в результате сильнейших магнитных солнечных бурь была полностью выведена из строя вся микроэлектроника Wi-Fi точек доступа и сетевые свитчи фирмы OpenComputers. С WiFi понятно, но как магнитные бури затронули проводные свитчи? Алекс, почини пожалуйста. У меня локальная сеть не работает, а без нее OpenNet. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 Пока решается вопрос с проводными свитчами, в ON-роутеры временно установлены беспроводные сетевые платы. В связи с этим изменились IP адреса всех абонентов Сети. В остальном Сеть работоспособна. Теперь о хорошем. Начал работу первый WEB-сервер под именем "info", дублирующий информацию с инфопанели, установленной на спауне. В отсутствии браузера сервер представляет собой чисто научный интерес, но желающие уже могут с ним поэкспериментировать. Помимо команды ping, сервер обрабатывает команды list и get. list - возвращает сериализованную таблицу файлов, доступных для считывания. get - принимает в качестве параметра имя файла и возвращает его содержимое. Ниже приведены скрины с примерами работы функций list и get 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 С WiFi понятно, но как магнитные бури затронули проводные свитчи? Алекс, почини пожалуйста. У меня локальная сеть не работает, а без нее OpenNet. Дима, а можно ли обойтись без свитчей вообще в ОNet? Дело в том, что нет никакой разницы по сути между свитчами и точками. Это одно сплошное безумие. Механика работы там походу одинаковая. Нет большой разницы между локальной и воздушной сетью. Ну и "прошивка" микроконтроллеров тоже одинаковая: Это уже подправленная "прошивка". # Switch and access point network message forwarding logic related stuff. switch { # This is the size of the queue of a not upgraded switch. Increasing it # avoids packets being dropped when many messages are sent in a single # burst. defaultMaxQueueSize=20 # The base number of packets that get relayed in one 'cycle'. The # cooldown between cycles is determined by the delay. defaultRelayAmount=0 # The delay a switch has by default between relaying packets (in ticks). # WARNING: lowering this value will result in higher maximum CPU load, # and may in extreme cases cause server lag. defaultRelayDelay=5000000 # This is the amount by which the queue size increases per tier of the # hard drive installed in the switch. queueSizeUpgrade=10 # The number of additional packets that get relayed per cycle, based on # the tier of RAM installed in the switch. For built-in RAM this # increases by one per half-tier, for third-party ram this increases by # two per item tier. relayAmountUpgrade=0 # The amount of ticks the delay is *reduced* by per tier of the CPU # inserted into a switch. relayDelayUpgrade=0 } # The version of OC this config was generated by. This is used to allow the # mod to reset parts of the config when their meaning changed across # versions, so that the user does not have to delete it. version="1.5.8.17" } Дело в том, что не все до конца понимают всю глубину трагедии и не ведают всех тех бед, когда пишут о каких-то фильтрах и ИРКах. Вай-фай точка доступа, это чистой воды дюпер сообщений в арифметической прогрессии, при чем всего эфира, подчеркиваю, всего, даже приватных сообщений, которые посланы по закрытым каналам на конкретный адрес. Оно их тоже перехватывает на уровне мода и транслирует лавинообразным методом, но только тем каналам, каким они предназначены. То есть, говоря простым языком, сообщение, которое отослал робот на выдавальщика товаров в Банке по закрытому каналу, перехватывается и дублируется, и выдавальщик без понятия, послал ли это робот опять команду выдать Васе кусочек коблы, или это безумная точка вай-фай какого-то Троянчика, который даже не ведал, что творил, когда ее скрафтил и присобачил к ПК, дюпнула сообщение. При чем это идет все лавиной, в зависимости от количества точек. И нет никакого способа это остановить или понять, где что!!!! Троянчик по сути, завалил весь ИТ и всю титаническую работу, проведенную для реализации банка и прочее. По сути, угробил всю сеть на ИТ. Мало того, этот баг в моде еще и апгрейтится на количество и скорость ретрансляции сообщений))))) Чтобы лавина еще больше была! Рай для грифера. Семоро же показывал, как можно завалить сервер 6-ю точками. И не просто зафлудить эфир, а именно завалить сервак!!!! Про какие фильтры может идти речь??? Пока на уровне мода не будет блокировки эха, точки и свитчи - зло во плоти. Зря я поверил на слово Фингеру и Нетису, что там уже все пофиксили это и не заблочил вай-фай точки доступа сразу на ИТ. Я всегда орал, что в КК, где нет закрытых каналов, можно перехватить командное сообщение и его продублировать от имени отправителя! И исполнитель без понятия, кто его отправил, если не делать уникальный признак времени жизни одного и того же пакета. Представьте себе картину, когда у вас в транслокаторе или квантовом мосте АЕ системы летают алмазы в сундук или дробилку, какой-то Троянчик в 400-ах блоков от вас крафтит усилитель квантового моста (а может и не один), и по серверу начинает в геометрической прогрессии дюпатся эти алмазы и летать разрастающейся кучей огромным роем по всему серверу по всем инвентарям, своим и чужим, бесконечно повторяясь вновь и вновь, пока не заполнят весь буфер усилителя! Что вы на это скажете. Разве так должно быть? Это же бред сивой кобылы, так ведь? По этому ONet имеет колоссальный смысл, где есть маршрутизация и прочее, а не просто сообщения, как теннисные мячики летают туда-сюда-обратно, размножаясь как амебы, бесконечно. Сейчас генератор тактовой частоты в точках просто не работает: http://puu.sh/htZC1/8e627c8ca9.png Это вынужденная мера, не я так хочу. Где-то в одиночке поиграть с точками можно. Настроить буфер на 1 сообщение, задержку отправки, тайминги. Тогда, да, может и удастся избежать эха. На сервере - это зло во плоти!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 Относительно беспроводных точек доступа согласен на 100%. Это зло которое надо искоренять. А вот проводной коммутатор вещь весьма полезная. Мало того, что без него проблематично связать два компьютера в сеть так, что бы они не путали мониторы. У меня еще каким то образом перестала работать локалка, которая коммутатор вообще не использовала. Другими словами, внесенная коррекция как то отразилась на работе обычных сетевых карт. Можно ли точку доступа вообще исключить из крафта, а коммутатор оставить как был? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 В том то и беда. Как их искоренить сейчас, Когда их на сервере уже может быть кучи? Крафт и установку то я выведу. А как я найду все действующие точки, вот в чем беда. А правка конфа, которая нас спасает от флуда и лавинного дюпа сообщений по вай-фай, затрагивает, к сожалению и свитчи. Дилемма, однако. (думаю) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 Не думаю, что точек доступа очень много. Рано или поздно они себя проявят, как проявила точка Троянчика. Можно сделать пеленг, в конце концов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 Минимум, что нужно сделать, это уничтожить все точки в радиусе 500 блоков от спавна, что как минимум обеспечит работу админ-схем, банков и прочего. Безотлагательно ввести проверку-фильтр меседжа по дальности на всяк пожарный (админ-дальность, первое сообщение привязки и дальнейшая ее проверка, как эталонной, так как в банке ни "гивальщик", ни терминал никуда не катаются, а робот сендит инструкции со своей стандартной точки только), в том же банке. Запретить крафт и установку вай-фай точек. Почистить мир от них по максимуму. Тогда можно закупать микроконтроллеры в дружественной нам солнечной системе Ахерна́р. Но опять же. Это нас не спасет от того, что где-то возможно останется такая бомба и будет грузить сервак, хоть и не будет мешать работе сети в админ-зоне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 Берусь изготовить пеленгатор точек доступа. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 Берусь изготовить пеленгатор точек доступа. Отлично! А я пока заблочу их крафт и плейсинг. Да и вообще сделаю "удалятор" из инвентаря локиблокером. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 Пеленгатор готов. Можешь временно разрешить точки чтоб обкатать его? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 Тоже все заблочил. Но если есть работающие точки, они пока будут влиять на банк, и банк будет лавинообразно продавать предметы, циклить покупку. То есть перед "ремонтом" точек нужно пока выключить весь банк с супервайзера, убедится в том, что нет работающих, или ждущих точек методом утомительного реплейсинга топориком терры с ID=531 на ID=0 П.С. Дима! Что даст нам пеленгатор? Дальность до репитера приватного сообщения, или его коры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cyber01 1 704 Опубликовано: 29 апреля, 2015 А если скажете мне ее ID (точки доступа) - я попробую посмотреть, кто ставил точки за последние 10 дней (логи корпротекта чистятся каждые 10 дней) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 29 апреля, 2015 П.С. Дима! Что даст нам пеленгатор? Дальность до репитера приватного сообщения, или его коры? Только дальность. Но его можно запустить на планшете и за небольшое время обнаружить точку. Радиус обнаружения - 400 блоков. Пеленгатор снабжен звуковой сигнализацией, что позволяет двигаться не глядя на экран планшета. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 Только дальность. Но его можно запустить на планшете и за небольшое время обнаружить точку. Радиус обнаружения - 400 блоков. Пеленгатор снабжен звуковой сигнализацией, что позволяет двигаться не глядя на экран планшета. Ага, отлично. То есть мы шлем в цикле чуть не самому себе приватное смс, и видим дубляж, понимаем, что продублировать его никто не может, кроме "точки", и видим дальность до подозреваемой вай-фай точки. И если бежим куда-то с планшетом, то дальность меняется и пикает ПК? Так? Заблочил банк пока. Дима, там у меня в берлоге под первой кабинкой стоит ПК - супервайзер. Он по вай-файке управляет всем банком, ребутит, блочит, апдейтит и прочее. Чтобы ты знал, на всяк пожарный. http://puu.sh/hv6Cf/e66479c819.png http://puu.sh/hv6Ff/907339ad03.png Сейчас "отремонтирую" вай-фай точки и можно начинать "охоту на лис". Плановый рестарт серва через 33 минуты, в 18-00 по Киеву. После этого точки начнут работать. А если скажете мне ее ID (точки доступа) - я попробую посмотреть, кто ставил точки за последние 10 дней (логи корпротекта чистятся каждые 10 дней) ид точки = 531 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 29 апреля, 2015 Спасибо, Дмитрий, за "Пеленгатор"! Теперь вай-фай бомберам-гриферам остается только прятаться под бедрок на -400 глубину https://www.youtube.com/watch?v=qXK8zfnUbic 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 30 апреля, 2015 (изменено) Не, Алекс, что то ты в настройках ОС затронул. Раньше сервера, которые в серверную стойку вставляются общались друг с другом посредством проводных плат. Теперь отказываются. Пришлось заменить проводные платы беспроводными. Вопрос решен. Нужно было снять и снова поставить серверные стойки Изменено 30 апреля, 2015 пользователем Zer0Galaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 30 апреля, 2015 (изменено) А OpenNet между тем медленно но уверенно развивается. Начал свою работу чат-сервер "chatroom". Для подключения к серверу Вам понадобится компьютер или планшет, подключенный к ON, библиотечка thread и конечно же программа чат-клиент. ------------------------------------------------------------ -- Чат-клиент для работы по сети OpenNet -- by Zer0Galaxy ------------------------------------------------------------ gpu = require("component").gpu text = require("text") wlen = require("unicode").wlen beep = require("computer").beep thread=require("thread") on = require("opennet") term = require("term") event= require("event") server=({...})[1] if not server then print("Формат вызова:") print("chat <IP или dns-имя сервера>") return end ev, _, _, _, Name=event.pull(1,"key_up") if not ev then term.write("Нажмите любую клавишу") ev, _, _, _, Name=event.pull("key_up") end ------ Переменные и функции для работы с окном вывода ------ local cursorX, cursorY = 1, 1 local WinW, WinH = gpu.getResolution() WinH=WinH-2 local Left,Top = 1, 1 function winwrite(value) value = text.detab(tostring(value)) if wlen(value) == 0 then return end do local noBell = value:gsub("\a", "") if #noBell ~= #value then value = noBell beep() end end local line, nl repeat line, value, nl = text.wrap(value, WinW - (cursorX - 1), WinW) gpu.set(cursorX+Left-1, cursorY+Top-1, line) cursorX = cursorX + wlen(line) if nl or (cursorX > WinW) then cursorX = 1 cursorY = cursorY + 1 end if cursorY > WinH then gpu.copy(Left, Top+1, WinW, WinH-1, 0, -1) gpu.fill(Left, WinH+Top-1, WinW, 1, " ") cursorY = WinH end until not value end function winclear() gpu.fill(Left, Top, WinW, WinH, " ") cursorX, cursorY = 1, 1 gpu.set(Left, Top+WinH, string.rep("═",WinW-25).."Введите 'quit' для выхода") end ------------------------------------------------------------ ok,err=on.getIP() if not ok then print(err) return end function getmess() while true do local ip,sender,mess=on.receive() if ip==server then gpu.setForeground(0xFFFF00) winwrite(sender) if mess then winwrite(": ") else mess="" end gpu.setForeground(0xFFFFFF) winwrite(mess) winwrite("\n") end end end thread.init() thread.create(getmess) local History={} winclear() on.send(server,"login",Name) while true do term.setCursor(Left, Top+WinH+1) term.clearLine() mess=term.read(History,false) mess=mess:gsub("\n", "") if mess=="quit" then break end if mess~=History[#History] then History[#History+1]=mess end on.send(server,"write",mess) end on.send(server,"logout") os.sleep(1) thread.killAll() В качестве параметра клиенту нужно указать ip или dns-имя чат-сервера Пример запуска клиента: chat chatroom А вот результат работы: Изменено 30 апреля, 2015 пользователем Zer0Galaxy 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 30 апреля, 2015 Я тоже хочу с вами, но не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах