代碼: 選擇全部
declare @ip varchar(15)
declare @v numeric
declare @i smallint, @pos smallint, @pold smallint
select @ip = '192.168.1.1'
select @i=3
select @pold = 1
select @v = 0
while(@i >= 0)
begin
select @pos = charindex('.', @ip, @pold)
if(@pos>0)
begin
select @v = @v + convert(numeric, power(256,@i)) * convert(int, substring(@ip, @pold, @pos-@pold))
select @pold = @pos + 1
end
else
begin
select @v = @v + convert(int, substring(@ip, @pold, 5))
end
select @i = @i - 1
end
print @v
算出來 '192.168.1.1' => 3232235777 就對囉, 計算方式為
192 * 256 ^ 3 + 168 * 256 ^ 2 +1 * 256 + 1 = 3232235777