Меню сайта

Библиотека

Яндекс DNS API
Описание Для домашнего сервера
Что мы имеем:
1. домашний сервер с Ubuntu
2. интернет с pppoe -логин и пароль дя авторизации- присваиваемым динамическим IP.

Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.

Ну что-же поехали
Домен должен быть делегирован на Яндекс DNS .
Первым делом получаем его токен
Получить его довольно просто, в браузере вводим.
Цитата:
https://pddimp.yandex.ru/get_token.xml?domain_name=my_domen.tk

Где my_domen.tk — наш домен делегированный на яндекс. Вводим капчу и в выводе ищем:
token="XXXXXX"
В кавычках будет ваш токен. Копируем его куда-нибудь.

Теперь нам нужно получить id нашей записи. Для этого в браузере вводим:
Цитата:
https://pddimp.yandex.ru/nsapi/get_domain_records.xml?token=XXXXXX&domain=my_domen.tk


Где ХХХХХХ-ваш токен, а my_domen.tk — наш домен делегированный на яндекс.
В выводе ищем строку с нашей записью my_domen.tk и в этой строке находим:
id="1234567"
В кавычках id записи, так же копируем его куда-нибудь

Теперь пишем скрипт:
bash:
Подсветка синтаксиса : Bash
  1.  
  2. #!/bin/sh
  3.  
  4. ##############
  5. # ПЕРЕМЕННЫЕ #
  6. # ############
  7.  
  8. # переменные окружения
  9. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
  10. # имя сетевого интерфейса
  11. NET=ppp0
  12. # файл для логов
  13. LOG=/~/domen_ip.log
  14.  
  15. # имя нашего домена
  16. DOMEN="my_domen.tk"
  17.  
  18. # токен для домена
  19. DOMEN_TOK=1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6b7b8b9b0c1c2c3c4c5c6c7c8c9c0
  20.  
  21. # ID для домена
  22. DOMEN_ID=1111111
  23.  
  24. # поиск IP с помощью ifconfig
  25. MYIP=`ifconfig $NET |grep "inet addr:" |sed 's/addr://g'| awk '{print $2}' `
  26. # IP в днс яндекса
  27. NSIP=`host $DOMEN dns1.yandex.ru | grep has | awk '{print $4}' `
  28.  
  29. #############
  30. # ПРОГРАММА #
  31. # ###########
  32. if [ $MYIP != $NSIP ]
  33. then
  34. # команда замены IP в ДНС яндекса для домена
  35. curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$DOMEN_TOK&domain=$DOMEN&record_id=$DOMEN_ID&content=$MYIP" | grep "<error>"|replace '   ' "`date "+%d-%m-%Y %H:%M:%S"` $DOMEN $MYIP" | sed -e :a -e 's/<[^>]*>/ /g;/</N;//ba' >>$LOG
  36. else
  37. echo "`date +%d-%m-%Y` `date +%H:%M:%S` $DOMEN : ok - $MYIP" >>$LOG
  38. fi
  39.  
Parsed in 0.078 seconds, using GeSHi 1.0.8.11. Created cache - 04.09.23 3:44


Значения переменных изменяются в соответствии комментариями.

А теперь наш скрипт нужно положить, не забывая про права, в /etc/ppp/if-up.d c именем 0_ya_dns_domen чтобы при поднятии pppoe он автоматически запускался и обновлял запись яндекс dns.

P.S. Чтобы было совсем все бесплатно, можно не покупать домен а использовать бесплатный домен в зоне .tk. Получить его можно на сайте www.dot.tk

Вот и всё, ребята! Wink
 
Автор gosudar  •  Дата Декабрь 04 2016, 20:13  •  Тип FAQ  •  Просмотров 1388
Категория Домашний сервер   •  Трекбек
 голос(ов) 0



Часовой пояс: GMT + 3