IPv4位址的儲存與查詢

2021-05-23 13:49:41 字數 2653 閱讀 6821

ipv4的位址實際上是乙個4位元組的資料。點分十進位制的字串表示是為了人工讀寫方便,但範圍比較則是原始二進位制形式方便。因此需要實現二者的相互轉換

--測試資料

create

table

#ips(

strip

varchar(15

) null

,binip

binary(4

) null)go

insert

into

#ips

values('

0.0.0.0',

null

)insert

into

#ips

values('

255.255.255.255',

null

)insert

into

#ips

values('

127.0.0.1',

null

)insert

into

#ips

values('

192.168.43.192',

null

)insert

into

#ips

values('

192.168.1.101',

null

)insert

into

#ips

values('

65.54.239.80',

null

)insert

into

#ips

values

(null

,0xb92aead3

)insert

into

#ips

values

(null

,0x2d4b2e53

)insert

into

#ips

values

(null

,0x31031b0b

)insert

into

#ips

values

(null

,0x7c2d5f2f

)insert

into

#ips

values

(null

,0x473e5d31

)insert

into

#ips

values

(null

,0x90d7d66b)go

select

strip,binip,

strip_new

=cast

(cast

(substring

(binip,1,

1) asint

) as

varchar(3

)) +'.

'+cast

(cast

(substring

(binip,2,

1) asint

) as

varchar(3

)) +'.

'+cast

(cast

(substring

(binip,3,

1) asint

) as

varchar(3

)) +'.

'+cast

(cast

(substring

(binip,4,

1) asint

) as

varchar(3

)),binip_new

=cast

(cast

(parsename

(strip,4)

asint

) as

binary(1

)) +

cast

(cast

(parsename

(strip,3)

asint

) as

binary(1

)) +

cast

(cast

(parsename

(strip,2)

asint

) as

binary(1

)) +

cast

(cast

(parsename

(strip,1)

asint

) as

binary(1

)),intip_new

=cast

(parsename

(strip,1)

asbigint) +

cast

(parsename

(strip,2)

asbigint) *

256+

cast

(parsename

(strip,3)

asbigint) *

65536

+cast

(parsename

(strip,4)

asbigint) *

16777216

--int型別也可以,但浪費空間且不直觀

from

#ips

IPV4位址分類

昨天去做上海 交易所的筆試題時,碰到了這一道題,現整合下手頭的資源,好好闡述這道題。ipv4是網際網路協議的第4版 v代表version,版本之意 也是第乙個被廣泛使用,構成現今 網際網路技術 的基礎的協議。目前的全球 網際網路所採用的協議族是 tcp ip協議族 ip是tcp ip協議族中網路層的...

IPv4 位址分類

d類 組播 11100000 11101111 224 239 e類 240 255 私網id 與私有ip位址對應的是公有位址 public address 由inter nic internet network information center 網際網路資訊中心 負責。這些ip位址分配給註冊並...

ipv4位址分類

ipv4位址分類 a類位址 1 a類位址第1位元組為網路位址,其它3個位元組為主機位址。b類位址 1 b類位址第1位元組和第2位元組為網路位址,其它2個位元組為主機位址。3 b類位址的私有位址和保留位址 172.16.0.0 172.31.255.255是私有位址 169.254.x.x是保留位址。...