Возвращение имени хоста вместо IP-адреса в переменной REMOTE_HOST

Возвращение имени хоста вместо IP-адреса в переменной REMOTE_HOST

Программирование » ASP.NET » Возвращение имени хоста вместо IP-адреса в переменной REMOTE_HOST
После установки по умолчанию IIS при обращении к переменной REMOTE_HOST возвращает IP address клиента, т.к. обычно только эта информация посылаеться броузером. Для нахождения имени хоста клиента, IIS должен провести обратный поиск DNS (reverse DNS look-up).

Как известно IIS хранит свои установки частично в registry и большую часть в мета-базе (metabase). Доступ к ней осуществляеься посредством либо Internet Service Manager (косвенно), либо программным способом (рекомендуется использовать Windows Scripting Host).

В метабазе присутсвует ключ именованный EnableReverseDNS, он применим на уровне Web сервера, виртуального сервера, виртуальной директории и файла. Для того чтобы IIS при обращении к переменной REMOTE_HOST проводил обратный DNS поиск необходимо его выставить в True (по умолчанию он стоит в False).

Т.к. при устанонвке Web сервера, все его низлежащие уровни (виртуальные Web сервера, директории и файлы) унаслодовали его свойста то и у них он стоит в False. Чтобы установить эту опции в уже существующих оъектах необходимо поменять это свойство на уровне корневой директори (Root).

Ниже приведён примерный текст на VBscript для использования WSH.

Dim Obj Set Obj = GetObject ("IIS://localhost/W3SVC/1/Root")

Obj.EnableReverseDNS = True Obj.SetInfo Set Obj=Nothing

Примечание:

"1" – порядковый номер сервера в структре метабазы, для того чтобы узнать как называеться этот сервер можно воспользоваться свойством ServerComment:

Dim Obj Set Obj = GetObject ("IIS://localhost/W3SVC/1")

MsgBox Obj.ServerComment Set Obj=Nothing

и уже определив его выставить этот ключ для корневой директории найденного сервера

Если Вы хотите чтобы все вновь создаваемые сервера наследовали эту опцию то её следует выставить на уровне вебсервера.

Dim Obj Set Obj = GetObject ("IIS://localhost/W3SVC")

Obj.EnableReverseDNS = True Obj.SetInfo Set Obj=Nothing




Григорий Сувалян http://www.relib.com/

Отзывы (через аккаунты в социальных сетях Вконтакте, Facebook или Google+):

Оставить отзыв с помощью аккаунта ВКонтакте:

Оставить отзыв с помощью аккаунта FaceBook:

Оставить отзыв с помощью аккаунта Google+: