Перейти к содержимому

Поиск по сайту

Результаты поиска по тегам 'dns'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Тут был Артур.

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Предложения по улучшению игрового процесса
    • Моды и плагины
    • Жалобы на игроков
    • Ивенты
  • Общение
    • Вопрос-ответ
    • Беседка программистов
    • Беседка-флудилка
    • Шкатулка
  • Технический раздел
    • Багтрекер
    • Архив

Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 3 результата

  1. Всем здрасти. Скрины: Клиент 1: Клиент 2: Лог сервера: Реализовано: Выдача IP Передача данных по выданым IP Регистрация/удаление доменов Получение IP адреса по домену То что хочется реализовать: Улучшить защиту, возможно сделать шифрование -Улучшить способ передачи данных между внутриигровыми IP Сделать библиотеку для пользовательских программ(С++, Java, Python, итп) для управления\получения данных OC через сервер, а так же поддержку Arduino(Можно будет выводить значения на экран подключеный к Arduino) Добавить поддержку децентрализации если в сети более 1 сервера(Можно будет делать межсерверные DNS-запросы) (Продолжение следует) Плюсы: Можно соединять OC компьютеры стоящие на разных MC серверах Быстрая работа сервера Минусы: Нужна оптимизация и поиск багов Плохая защита Исходники GitHub: https://github.com/TheConnBit/OpenComputersDHCP-DNS P.S. Там же объяснение всех команд, итп Исходники для ленивых (обновлено): Сервер (Запускать через консоль java -jar и лучше в отдельной папке): DHCP-DNS-Server.jar Клиентская библиотека: ddns.lua На скрине показано: подключение к серверу, выдача IP, регистрация домена, запрос IP домена, передача данных, получение, удаление домена, отключение Вообщем, сильно не пинайте за код. Если кто возьмется искать\найдёт баги или будут предложения что улучшить\добавить, пишите мне сюда или на почту bithovalsky@gmail.com Сначало была идея только DHCP сервера, но потом я накнулся на статью Programmist135: http://computercraft.ru/topic/1853-dns/ и реализовал DNS. Последние изменения: - - v1.1 Исправлены названия функций Исправлен перевод Функция Resolve теперь возвращает IP Пофикшены отключения сервером клиентов из за таймаута Echo запроса Список доменов теперь указывается в файле config.properties Изменён способ отправки сообщений по IP, появились порты --Bit
  2. Именем p135, представляю вам программу! Две программы! Ладно, без шуток. Всем привет. Я разрабатываю mcGSM. А соответственно нужны будут DNS для удобного доступа. Пока на разработку времени нет, но я уже написал модуль для этой штуки. Пока не для этой, а для простых модемов. Потом переделаю. Ладно, не медлим, давайте. Это DNS. Да, он самый с доменами второго уровня (p135.ru, mcdns.net, ...). Значит у него есть две части: сервер и клиент. Работает он по такому принципу: Компьютер запрашивает у DNS-сервера адрес, при помощи библиотеки. DNS-сервер ищет в своей папке сначала домен этого адреса, затем сам адрес. Например, p135.ru будет находится здесь: /dns/ru/p135.dns. В файле содержится адрес регистратора - он отправляется тому, кто запросил. Если адреса не существует, то отправляется сигнал, что "адреса p135.net не существует" Надеюсь понятно обьяснил. Код: Сервер: http://pastebin.com/5VnJQawh Клиентская библиотека: http://pastebin.com/YzwiG4gb И так, перейдём к настройке. Сервер: Ставим комп (или сервер) с модемом (какой хотите, проводной, беспроводной, dial-up...) Создаём папку dns в корне (или другую, только в переменной dir не забудьте поправить) В этой папке создаём папки с названиями доменов: ru, com, net, io, какие хотите Скачиваем и запускаем сервер. [!] Если кто-то попытается зарегистрировать домен, например, ty, то у него ничего не выйдет. Система не позволит. Чтобы разрешить, также создайте папку ty. Клиент: Скачиваем библиотеку Открываем её редактором edit Изменяем переменную "dns_server" на адрес вашего сервера (отображается при запуске) Сохраняем ... Пример пользования клиентом: lua> dns=require("dns") lua> =dns.register("p135.ru") -- регистрируем true lua> =dns.get("p135.ru") -- получаем ip этого домена "de63ba47-beb6-4055-a016-e4090c18cdb5" lua> =dns.register("p135.ru") false -- домен уже существует lua> =dns.register("p135.ty") false -- нельзя, мы не разрешили регистрировать домены ty lua> =dns.register("p135.io") true -- можно зарегистрировать второй домен на один и тот же адрес - оба будут направлять на него Вот и всё. Спасибо за прочтение. Да кстати, dns.get(...) выполняется практически моментально. В следующей версии планирую сделать домены третьего уровня, а также красивый графический интерфейс для сервера. Забыл сказать, проект называется mcDNS. Почему не OpenDNS? Потому что это уже реально существующий проект. Ну, и пример в картинках
  3. программа аналог DNS сервера (моя реализация работает не так как реальный DNS но выполняет туже функцию) с коментариями для новичков (вроде меня) ServerList = {} --endServerList top_level_domain = "com" function serialize() --сериализация массива сайтов str = "ServerList = {}\n" for k,v in pairs(ServerList) do str = str.."ServerList[\""..k.."\"] = {Position = {X="..v.Position.X..",Y="..v.Position.Y..",Z="..v.Position.Z.."},PROXY=\""..v.PROXY.."\",Limit="..v.Limit..",Dist="..v.Dist.."}\n" end return str.."\n" end function save() eeprom = component.proxy(component.list("eeprom")()) program = eeprom.get() xx,yy = string.find(program,"--endServerList\n") program = serialize().."--endServerList\n"..string.sub(program,yy+1,#program) --вырезаем старый массив сайтов и вставляем новый if #program < 4096 then --если программа после замены массива помещается в eeprom сохраняем ее eeprom.set(program) end end function AddServer(x,y,z,proxy,address,dst) ServerList[address] = {Position={X=x,Y=y,Z=z},PROXY=proxy,Limit=0,Dist=dst} --создаем новый сервер save() end modem = component.proxy(component.list("modem")()) modem.open(16) for k,v in pairs(ServerList) do --раззсылка "REQUEST" v.Bool = false modem.setStrength(v.Dist+1) modem.send(v.PROXY,16,"REQUEST") v.Limit = v.Limit+1 if v.Limit >= 840 then ServerList[k] = nil end end save() while true do name,_,sender,_,Dist,CMD,message,x,y,z = computer.pullSignal(2) if name == "modem_message" then if CMD == "GET_ADDRESS" then if ServerList[message] ~= nil then --если есть запись if ServerList[message].Position.X == nil then --если нет координат modem.setStrength(Dist+1) modem.send(sender,16,"ACCEPT",ServerList[message].PROXY) --просто посылаем прокси else modem.setStrength(Dist+1) modem.send(sender,16,"ACCEPT",ServerList[message].PROXY,ServerList[message].Position.X,ServerList[message].Position.Y,ServerList[message].Position.Z) --посылаем прокси и координаты end else modem.setStrength(Dist+1) modem.send(sender,16,"ADDRESS_IS_NULL") --записей нет end end if CMD == "CREATE_ADDRESS" then if ServerList[message] == nil then --если такого сайта не зарегистрировано if string.sub(message,#message-(#top_level_domain),#message) == "."..top_level_domain then --если главный домен подходит if x ~= nil and y ~= nil and z ~= nil then --если есть координаты AddServer(x,y,z,sender,message,Dist) --новый сервер modem.setStrength(Dist+1) modem.send(sender,16,"SUCCESS") --говорим сайту что он зарегистрирован else modem.setStrength(Dist+1) modem.send(sender,16,"PLEASE_ENTER_SERVER_POSITION") --позцыя не введена end else modem.setStrength(Dist+1) modem.send(sender,16,"THIS_ADDRESS_DOES_NOT_FIT_DNS_SERVER",top_level_domain) --домен не подходит end else modem.setStrength(Dist+1) modem.send(sender,16,"SPECIFIED_ADDRESS_ALREADY_EXISTS") --такой сайт уже есть end end if CMD == "DELETE_ADDRESS" then if ServerList[message].PROXY == sender then --если сервер сам желает удалить себя из списка ServerList[message] = nil --удаляем modem.setStrength(Dist+1) modem.send(sender,16,"REMOVAL_COMPLETED") --сообщаем save() end end if CMD == "TRUE" then --ответ на "REQUEST" if ServerList[message].PROXY == sender and ServerList[message].Bool == false then --проверяем кто отправил и один ли раз на 12 минут отправляется мейседж ServerList[message].Bool = true; ServerList[message].Limit = ServerList[message].Limit-0.1 --на один пропуск "REQUEST" нужно 10 раз не пропустить процедуру if ServerList[message].Limit < 0 then ServerList[message].Limit = 0 end save() end end end if computer.uptime() >= 720 then --прошло 12 минут перезагружаем OpenDNS освободить память да и разсылку "REQUEST" запустить save() computer.shutdown(true) end end работает сие чудо на уровне eeprom в нем и хранит данные о сайтах данные шлет и принимает по 16 порту команды и аргументы для OpenDNS "GET_ADDRESS","MySite.MyTop-level_Domain" возможные ответы: "ACCEPT",ServerProxy,x,y,z --прокси модема сервера и его координаты "ADDRESS_IS_NULL" --записей о данном адресе нет "CREATE_ADDRESS","MySite.MyTop-level_Domain",x,y,z возможные ответы: "SUCCESS" --сайт успешно зарегистрирован "PLEASE_ENTER_SERVER_POSITION" --не введены координаты или введены не все "THIS_ADDRESS_DOES_NOT_FIT_DNS_SERVER",top_level_domain --главный домен вашего адреса не подходит данному OpenDNS серверу (еще он присылает вам свой главный домен для регистрации) "SPECIFIED_ADDRESS_ALREADY_EXISTS" --сайт с таким адресом уже существует "DELETE_ADDRESS","MySite.MyTop-level_Domain" возможные ответы: "REMOVAL_COMPLETED" --удаление прошло успешно если вам от OpenDNS сервера пришел запрос "REQUEST" вы должны ответить на него: "TRUE","MySite.MyTop-level_Domain" если вы пропустите процедуру 840 раз сервер удалит данные о вашем сайте запрос посылается каждые 12 минут (сделано для очищения OpenDNS сервера от неработающих сайтов) если я не так понял СТОРОНЯЯ ССЫЛКА: http://site.nic.ru/content/view/225/29 то обясните пожалуйста да есть ошибка с отправкой ответа в случае успешного создания адреса сайта, исправлю пожже (не в час же ночи ) жду коментариев
×
×
  • Создать...