Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка строки на соответствие правил именования DNS

Ответить
Настройки темы
VBS/WSH/JS - Проверка строки на соответствие правил именования DNS

Старожил


Сообщения: 161
Благодарности: 5

Профиль | Отправить PM | Цитировать


Может, есть у кого готовый скрипт?
Есть строка вида device.domain.zone.
Необходимо её проверить на соответствие правилам именования DNS, то есть: англ. буквы, точка, тире, цифры, если что-то не так - выдать error. Как проверить - я примерно понимаю с помощью RegExp, но как проверить, чтобы в строке не было, допустим, 2-3-много точки подряд? 2-3 тире?

Отправлено: 14:40, 28-11-2019

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6483
Благодарности: 1462

Профиль | Отправить PM | Цитировать


Цитата glukin:
соответствие правилам именования DNS, то есть: англ. буквы, точка, тире, цифры »
Точный критерий и несколько примеров правильных имён приведите.

Пока примерно так (powershell):
Код: Выделить весь код
$dnsname = 'device.domain.zone.'

if ($dnsname -notmatch "^([A-Za-z0-9-]+\.){3}$" -or $dnsname -match "--") {
write-host -fore red "error!"
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 28-11-2019 в 17:28.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:44, 28-11-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Точный критерий и несколько примеров правильных имён приведите. »
Код: Выделить весь код
^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
Это без учёта максимальной длины в 255 символов и возможности указания корневой зоны в конце абсолютного доменного имени (в виде точки).

RFC 1034 - Domain names - concepts and facilities
RFC 1035 - Domain names - implementation and specification
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 28-11-2019 | #3


Старожил


Сообщения: 161
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Точный критерий и несколько примеров правильных имён приведите. »
Допустимы англ. буквы, точка, тире, цифры.

Device1.domain1.ru
device-2.domain.1.ru3
45-deVice.3.domain-4.5ru

Не должно быть более 1 точки или 1 тире подряд. Точка-тире или тире-точка или подобные сочетания недопустимы. На конце или в начале не может быть точек или тире.

Последний раз редактировалось glukin, 28-11-2019 в 21:29.


Отправлено: 20:04, 28-11-2019 | #4


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6483
Благодарности: 1462

Профиль | Отправить PM | Цитировать


Тогда так:
Код: Выделить весь код
if ($dnsname -notmatch "^([A-Za-z0-9-]+\.){2}[A-Za-z0-9-]+$" -or $dnsname -match "--|\.-|-\.|^[\.-]|[\.-]$") {
write-host -fore red "error!"
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:53, 29-11-2019 | #5


Старожил


Сообщения: 161
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Тогда так: »
А на vbs можно? Ибо будет работать на win server 2003.

Отправлено: 10:40, 29-11-2019 | #6


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6483
Благодарности: 1462

Профиль | Отправить PM | Цитировать


Я не умею на VBS, тем более, что на Win2003 Powershell имеется.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 11:04, 29-11-2019 | #7


Старожил


Сообщения: 161
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Win2003 Powershell имеется. »
Да не в этом дело, там уже есть гигантский скрипт на vbs, надо мне будет этот кусок туда внедрить.
Iska, Вы не поможете переделать сабж в vbs?

А если я сделаю так:
objShell.Run("powershell.exe -noexit -Command ""if ($dnsname -notmatch "^([A-Za-z0-9-]+\.){2}[A-Za-z0-9-]+$" -or $dnsname -match "--|\.-|-\.|^[\.-]|[\.-]$") {
write-host -fore red "error!"
}""")

то как сделать, чтобы вернуть в vbs-скрипт "error", если в результате команды powershell будет "error"? И как передать в powershell переменную dnsname?

Последний раз редактировалось glukin, 29-11-2019 в 13:00.


Отправлено: 12:26, 29-11-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата glukin:
там уже есть гигантский скрипт на vbs, надо мне будет этот кусок туда внедрить.
Iska, Вы не поможете переделать сабж в vbs? »
Покажите полный код Вашего скрипта (или файл скрипта, упаковав его в архив). Укажите в нём место, куда Вы планируете внедрять «этот кусок».

Отправлено: 22:16, 29-11-2019 | #9


Старожил


Сообщения: 161
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Iska:
Покажите полный код Вашего скрипта »
А в личку или куда еще можно? Я бы не хотел его тут светить.
И, кстати,зачем?

Отправлено: 22:56, 29-11-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка строки на соответствие правил именования DNS

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Глюк с одним из правил встроенного брандмауэра,вообще не настраивается одно из правил интерактивный Microsoft Windows 7 0 11-07-2009 07:06
проверка работоспособности DNS сервера piling Microsoft Windows NT/2000/2003 14 21-05-2009 13:02
[решено] проверка XML-файла на соответствие XML schema в IE 6 и Firefox 2 dimait Вебмастеру 4 23-08-2007 02:02
Редактирование DNS из командной строки keyF Сетевые технологии 2 29-12-2004 19:08
Как изменить из командной строки DNS на клиенте? Myckyc Сетевые технологии 1 26-08-2003 04:20




 
Переход