IP adresleri veri tabanınız var ise ve aralık karşılaştırması yapmanız gerekiyorsa alttaki MSSQL fonksyonu kullanabilirsiniz. ip2int() kullanarak Verilen IP adres int dönüştürülür ve BETWEEN karşılaştırması yapabilirsiniz.
CREATE FUNCTION dbo.ip2int(
@ip varchar(15)
)
/*
aralık karşılaşılaştırması yapılabilmesi için IP adresin int convert eden funct
*/
RETURNS bigint
BEGIN
Declare @oct1 int, @oct2 int, @oct3 int, @oct4 int
SELECT @oct1 = convert(int,LEFT(@ip,CHARINDEX('.',@ip) - 1)) ,
@oct2 = convert(int,SUBSTRING(@ip, CHARINDEX('.',@ip) + 1,
CHARINDEX('.',@ip,CHARINDEX('.',
@ip) + 1) - (CHARINDEX('.',@ip) + 1))) ,
@oct3 = convert(int,SUBSTRING(@ip,CHARINDEX('.',
@ip,CHARINDEX('.',@ip) + 1) + 1,
DATALENGTH(@ip) - CHARINDEX('.',
@ip,CHARINDEX('.',@ip) + 1) -
CHARINDEX('.',REVERSE(@ip)))),
@oct4 = convert(int,RIGHT(@ip,CHARINDEX('.',REVERSE(@ip)) - 1))
return @oct4+(@oct3*256)+(@oct2*256*256)+(@oct1*256.0*256.0*256.0)
END
Örnek:
select dbo.ip2int('127.0.0.0')