比較傳統儲存ip位址的方法是採用varchar(15),但是這種方法需要占用15個位元組空間,那麼有沒有更加節省空間的做法麼?答案就是用int儲存。採用int儲存有2種處理方式。
方法一、利用資料庫函式進行處理。以mysql為例可以採用inet_aton,inet_ntoa函式進行轉換。
# inet_ntoa函式將ip位址轉換int型別。
mysql> select inet_aton(
'192.168.0.1');
+--------------------------+
| inet_aton(
'192.168.0.1')|
+--------------------------+
| 3232235521 |
+--------------------------+
1 row in
set(0.00 sec)
#inet_aton函式將int型別轉換為ip位址
mysql> select inet_ntoa(3232235521)
; +-----------------------+
| inet_ntoa(3232235521)
|+-----------------------+
| 192.168.0.1 |
+-----------------------+
1 row in
set(0.00 sec)
方法
二、利用開發語言的函式進行處理,以python進行舉例。可以採用socket,struct依賴進行轉換
#引入依賴
>>
>
import socket
>>
>
import struct
>>
> int_ip =
123456789
#int型別轉ip位址
>>
> ip = socket.inet_ntoa(struct.pack(
'i',socket.htonl(int_ip)))
'7.91.205.21'
##ip位址轉int型別
>>
> socket.ntohl(struct.unpack(
"i",socket.inet_aton(
str(ip)))
[0])
123456789
IP位址在資料庫裡面的儲存方式
大多數公司的表結構都需要經過dba進行審核,有時候你會看到儲存ip位址採用varchar 15 這種方式都是傳統的做法,這種方法需要占用15個位元組,那麼有更省空間的做法麼?肯定是有的,那就是用int儲存。如果採用int儲存這裡又有2種處理方式。1.利用mysql函式進行處理。可以採用inet at...
在windows裡面的資料庫裡面存emoji表情
1,把連線資料庫的unicdoe utf 8給去掉,那個url 2,關閉mysql的服務,修改my.ini 具體如下 default character set utf8mb4 character set server utf8mb4 collation server utf8mb4 unicode...
讀取資料庫裡面的值出現亂碼
eeclipse裡的中文都是亂碼,包括注釋,但資料庫裡面的資訊可以顯示中文,從資料庫裡面讀取值的時候出現亂碼,需要改兩個地方 1.在eeclipse裡面,開啟properties resource text file encoding,選第乙個選項 不是other 2.還是在eeclipse裡面,開...