SQL Server TSQL 將 IP 取網段 Prefix
2022-01-12
筆記 SQL Server 在有限的函數工具下,如何使用藉由字串函數來取 IP Prefix 網段,用以分析 IIS Logs 資料。
說明
Example Codes
DECLARE @IP varchar(16)
SET @IP = '10.1.200.30'
SELECT Substring(@IP, 1, Len(@IP) - CharIndex('.', Reverse(@IP))) AS 'IP Prefix'
-- 10.1.200
User Defined Function
CREATE FUNCTION dbo.ufnIPPrefix (@ip varchar(16))
RETURNS varchar(16)
WITH EXECUTE AS CALLER
AS
BEGIN
RETURN(Substring(@ip, 1, Len(@ip) - CharIndex('.', Reverse(@ip))));
END;
GO
包裝為 User Defined Function,可以遞迴使用,取任意段數的 IP:
SELECT dbo.ufnIPPrefix(dbo.ufnIPPrefix('10.112.113.114')) AS 'IP Prefix'
-- 10.112