私はIPアドレス列を含むMS SQLServer 2005テーブルを持っており、サブネットごとにエントリを数えたいと思います。サブネット別クエリipaddress
のような不幸なIPアドレスの列は、サンプルデータを持つvarchar型である:私は最善のアプローチは、整数にIPアドレスを変換することになり、その後、私は適切に適用することができると思い 192.168.10.20 10.1.2.3
ビットマスク。
整数に4オクテットの文字列を取得する方法はありますか?
私はIPアドレス列を含むMS SQLServer 2005テーブルを持っており、サブネットごとにエントリを数えたいと思います。サブネット別クエリipaddress
のような不幸なIPアドレスの列は、サンプルデータを持つvarchar型である:私は最善のアプローチは、整数にIPアドレスを変換することになり、その後、私は適切に適用することができると思い 192.168.10.20 10.1.2.3
ビットマスク。
整数に4オクテットの文字列を取得する方法はありますか?
また、表示hereのようにPARSENAME関数を使用してこれを行うこともできます。
4オクテットのドット表記をBIGINTに変換するには、次のようにします。 = '192.168.123.123'
セレクト(CONVERT(BIGINT、PARSENAME(IP @、1))+ CONVERT(BIGINT、PARSENAME(IP @、2 IP @
DECLAREの@IPのCHAR(15)SET ))* 256 + CONVERT(BIGINT、PARSENAME(IP @、3))* 65536 + CONVERT(BIGINT、PARSENAME(@ IP、4))* 16777216)
そこから、それはに非常に単純なことだし、 4294967040(255.255.255.0)を取得して/ 24サブネットにする
コードのためにLess Than Dotありがとうございます。