CREATE FUNCTION [dbo].[ipTxtToBin] ( @ip varchar(15) ) RETURNS binary(4)AS BEGIN DECLARE @o1 binary(1), @o2 binary(1), @o3 binary(1), @o4 binary(1) SELECT @o1 = CONVERT(binary(1),CONVERT(tinyint,PARSENAME(@ip,4))), @o2 = CONVERT(binary(1),CONVERT(tinyint,PARSENAME(@ip,3))), @o3 = CONVERT(binary(1),CONVERT(tinyint,PARSENAME(@ip,2))), @o4 = CONVERT(binary(1),CONVERT(tinyint,PARSENAME(@ip,1))) RETURN @o1+@o2+@o3+@o4END
declare @ip VARCHAR(15) set @ip = '255.128.64.32'declare @bin binary(4)select @bin = [dbo].[ipTxtToBin] (@ip)select @ip as ip , @bin as bin , convert(tinyint,substring(@bin,1,1)) as octet1 , convert(tinyint,substring(@bin,2,1)) as octet2 , convert(tinyint,substring(@bin,3,1)) as octet3 , convert(tinyint,substring(@bin,4,1)) as octet4