1 2 3 4 5 6 7 8 9 10 11 12 | CREATE FUNCTION [dbo].[getIPNumber] ( @ip varchar (15) ) RETURNS bigint AS BEGIN Declare @part1 bigint , @part2 int , @part3 int , @part4 int SELECT @part1= CAST ( LEFT (@ip, CHARINDEX ( '.' , @ip)-1) as bigint )*16777216, @ip= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) SELECT @part2= LEFT (@ip, CHARINDEX ( '.' , @ip)-1)*65536, @ip= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) SELECT @part3= LEFT (@ip, CHARINDEX ( '.' , @ip)-1)*256, @part4= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) Return @part1+@part2+@part3+@part4 END |
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE FUNCTION [dbo].[getIPString] ( @num bigint ) RETURNS varchar (15) AS BEGIN DECLARE @ip varchar (15) SELECT @ip = @num / 16777216, @num=@num % 16777216 SELECT @ip = @ip + '.' + cast (@num / 65536 as varchar ), @num=@num % 65536 SELECT @ip = @ip + '.' + cast (@num / 256 as varchar ), @ip = @ip + '.' + cast (@num % 256 as varchar ) Return @ip END |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | CREATE FUNCTION [dbo].[getIPNumber] ( @ip varchar (15) ) RETURNS bigint AS BEGIN Declare @part1 bigint , @part2 int , @part3 int , @part4 int SELECT @part1= CAST ( LEFT (@ip, CHARINDEX ( '.' , @ip)-1) as bigint )*16777216 , @ip= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) , @part2= LEFT (@ip, CHARINDEX ( '.' , @ip)-1)*65536 , @ip= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) , @part3= LEFT (@ip, CHARINDEX ( '.' , @ip)-1)*256 , @part4= RIGHT (@ip, LEN(@ip)-CHARINDEX ( '.' , @ip )) Return @part1+@part2+@part3+@part4 END CREATE FUNCTION [dbo].[getIPString] ( @num bigint ) RETURNS varchar (15) AS BEGIN DECLARE @ip varchar (15) SELECT @ip = @num / 16777216 , @num=@num % 16777216 , @ip = @ip + '.' + cast (@num / 65536 as varchar ) , @num=@num % 65536 , @ip = @ip + '.' + cast (@num / 256 as varchar ) , @ip = @ip + '.' + cast (@num % 256 as varchar ) Return @ip END |
1 2 3 4 5 6 7 8 9 10 11 | CREATE FUNCTION [dbo].[getIPNumber] ( @ip varchar (15) ) RETURNS bigint AS BEGIN Return CAST (PARSENAME(@ip,4) as bigint )*16777216 + PARSENAME(@ip,3)*65536 + PARSENAME(@ip,2)*256 + PARSENAME(@ip,1) END |