[SQL Server] IPアドレスを数字に変更する方法

inno
2014-10-26 14:41 2090 0
MS-SQL / SQL Server
IPアドレスを数字に変更する方法

IPアドレスを数字に変更することはあまりないのですが、
念の為その方法を説明したいと思います。

簡単に例文を作成しました。
「127.0.0.1」のIPアドレスを数字に変更する方法は下記の通りです。


DECLARE @IpAddr varchar(15)

SET @IpAddr = '127.0.0.1'

-- #### IPを数字に変更 #### START ####

DECLARE @IpNum numeric(18,0)
DECLARE @ip1 bigint, @ip2 bigint, @ip3 bigint, @ip4 bigint

SET @ip1 = PARSENAME(@IpAddr, 4)
SET @ip2 = PARSENAME(@IpAddr, 3)
SET @ip3 = PARSENAME(@IpAddr, 2)
SET @ip4 = PARSENAME(@IpAddr, 1)

SET @IpNum = @ip1*(256*256*256)+@ip2*(256*256)+@ip3*(256)+@ip4

-- #### IPを数字に変更 #### END ####

-- #### 結果確認 ####
SELECT @IpAddr AS [IpAddress], @IpNum AS [IpAddressNumber]


実行結果

IpAddress       IpAddressNumber
--------------- ---------------------------------------
127.0.0.1       2130706433

個人的にはGeoIPを利用する為にIP Addressを数字に変更しています。

コメント