получить адрес сервера iis при вставке данных в SQL Server 2005 - PullRequest
0 голосов
/ 05 августа 2009

Когда пользователь на моем сайте регистрируется и его данные вставляются в таблицу на сервере sql 2005, мне нужно знать, с какого iis-сервера пришел пользователь, а не IP-адрес пользователя. (в iis есть 2 разных адреса сервера, с которых можно было бы получить данные). Затем мне нужно получить адрес и вставить его в другую таблицу. Как я могу получить этот адрес?

Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 05 августа 2009

Используйте функцию HOST_NAME ()

РЕДАКТИРОВАТЬ: ОП пояснил, что он хочет IP-адрес сервера IIS.

Можете ли вы преобразовать имя в IP, используя таблицу поиска? Предположительно серверы IIS не меняют это динамически?

РЕДАКТИРОВАТЬ: некоторый код

Если у вас включен xp_cmdshell, вы можете попробовать что-то вроде

declare @hostip varchar(50)
declare @hostname varchar(50)
declare @cmd varchar(8000) 

set @hostname = HOST_NAME()

set @cmd = 'ping -n 1 ' + @hostname

create table #temp (pingoutput varchar(max)) 

insert into #temp exec master.dbo.xp_cmdshell @cmd 
select @hostip = substring(pingoutput,  charindex('[',pingoutput)+1, charindex(']',pingoutput)-charindex('[',pingoutput)-1) 
from #temp
where left(pingoutput,7) = 'Pinging' 

select @hostip 

drop table #temp

замените @hostname тем, что вам нужно, чтобы найти IP-адрес данного имени, или используйте как есть, чтобы получить IP-адрес хоста


РЕДАКТИРОВАТЬ: некоторые дальнейшие мысли

Метод ping для получения IP-адреса HOST_NAME () может не работать, если ваши веб-серверы находятся в DMZ

Если вы пытаетесь импортировать веб-журналы IIS, известно ли вам о поле [s-ip], которое можно добавить в расширенный формат журнала W3C. Это добавит ip веб-сервера к записям журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...