Voici un procédure Transact SQL qui récupére dynamiquement les adresses IP des cartes d’un serveur. Cette procédure marche pour un OS en anglais comme en français.
CREATE PROCEDURE P_GET_IP_ADR
AS
BEGIN
SET NOCOUNT ON;
DECLARE @T TABLE (IP_ADR NVARCHAR(200));
INSERT INTO @T
EXEC master..xp_cmdshell 'ipconfig';
DELETE FROM @T
WHERE NOT (IP_ADR LIKE '%IP ADDRESS%' COLLATE SQL_Latin1_General_CP850_CI_AS
OR IP_ADR LIKE '%ADRESSE IP%' COLLATE SQL_Latin1_General_CP850_CI_AS)
OR IP_ADR IS NULL;
UPDATE @T
SET IP_ADR = RTRIM(LTRIM(SUBSTRING(IP_ADR,
CHARINDEX(':', IP_ADR, 1) + 1 ,
LEN(IP_ADR) - CHARINDEX (':', IP_ADR, 1))));
SELECT * FROM @T;
END;
Exemple d’utilisation :
EXEC master.dbo.P_GET_IP_ADR
IP_ADR
-------------------------
10.19.5.204
IP_ADR
-------------------------
10.19.5.204
————–
Frédéric BROUARD, Spécialiste modélisation, bases de données, optimisation, langage SQL.
Le site sur le langage SQL et les S.G.B.D. relationnels : http://sqlpro.developpez.com/
Expert SQL Server http://www.sqlspot.com : audit, optimisation, tuning, formation
* * * * * Enseignant au CNAM PACA et à l’ISEN à Toulon * * * * *