Obtenir les adresses IP d’un serveur

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

————–
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 * * * * *

Laisser un commentaire