Перейти к публикации
Форум - ComputerCraft

Рекомендованные сообщения

Именем 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

 

И так, перейдём к настройке.

 

Сервер:

  1. Ставим комп (или сервер) с модемом (какой хотите, проводной, беспроводной, dial-up...)
  2. Создаём папку dns в корне (или другую, только в переменной dir не забудьте поправить)
  3. В этой папке создаём папки с названиями доменов: ru, com, net, io, какие хотите
  4. Скачиваем и запускаем сервер.

[!] Если кто-то попытается зарегистрировать домен, например, ty, то у него ничего не выйдет. Система не позволит. Чтобы разрешить, также создайте папку ty.

 

Клиент:

  1. Скачиваем библиотеку
  2. Открываем её редактором edit
  3. Изменяем переменную "dns_server" на адрес вашего сервера (отображается при запуске)
  4. Сохраняем
  5. ...

Пример пользования клиентом:

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? Потому что это уже реально существующий проект. Ну, и пример в картинках

XaHnT0P.pngKFzsiMA.png

  • Like 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я так и не понял, тут используется адрессация по машинным или же у тебя есть какой-то свой адрессный протокол?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я так и не понял, тут используется адрессация по машинным или же у тебя есть какой-то свой адрессный протокол?

Ну ты запрашиваешь у сервера домен один раз, он тебе адрес. А дальше по принятому адресу общаешься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для небольшой сети большего и не требуется, в принципе.

Можно общаться по адресу модема.

 

А вот если сеть раскинется больше чем на 400 блоков, где связь не добьёт, надо будет думать.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я писал либу ip2b на которую успешно забил) эта либа апгрейдит опенось для работы с ip2b-адрессами, они как ip, только всего в 2 байта, но адрессация безмасковая была, так что я на нее подзабил) возможно когдато перепишу ее)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во-во-во! Это серьёзный прогресс после прошлых потугов на программки! Молодца, одним словом.

  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сразу несколько вопросов. 

1. Как модифицировать домен? (допустим адрес сменить пришлось)

2. Как удалить домен?

3. Защита от спама доменами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сразу несколько вопросов. 

1. Как модифицировать домен? (допустим адрес сменить пришлось)

2. Как удалить домен?

3. Защита от спама доменами?

Пока ещё не реализовано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×