Irina22 » Ср сен 06, 2006 3:58 am
Текущее "name" компутера дает функция Transact-SQL - HOST_NAME().
Показывается именно локальное имя, не сервера.
А вот по имени определить IP - уже проблема. Внутренних средств сиквела нету. Можно написать процедуру, которая использует хранимые процедуры в SQL и промежуточную выдачу в текстовый файл - это работает, но надо ли?
плиз.
DECLARE @TXT char(200), @IP char(200), @A int
SET @txt = 'ping '+HOST_NAME()+' >output.txt'
EXEC master..xp_cmdshell @txt
IF EXISTS (SELECT *
FROM tempdb..sysobjects
WHERE (xtype = 'U') AND (name = 'RESULT'))
BEGIN
DROP TABLE tempdb..RESULT
END
CREATE TABLE tempdb..RESULT (TXT char(800))
BULK INSERT tempdb..RESULT FROM 'output.txt'
SET @IP = (SELECT TXT
FROM tempdb..RESULT
WHERE CHARINDEX(HOST_NAME(),TXT) <> 0)
IF @IP IS NOT NULL
BEGIN
SET @A = CHARINDEX('[', @IP)
IF @A > 1
BEGIN
SET @IP = STUFF(@IP,1,@A,'')
SET @IP = LEFT(@IP, CHARINDEX(']', @IP) - 1)
END
ELSE
SET @IP = null
END
SELECT @IP
.... просто было интересно.. <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->
cognito, ergo sum...