国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

基于Mysql的IP處理函數inet_aton()與inet_ntoa()的深入分析

2024-07-24 13:01:58
字體:
來源:轉載
供稿:網友

有個統(tǒng)計需求,需要對IP進行分類統(tǒng)計,Mysql提供了inet_aton()和inet_ntoa()函數進程處理。
具體可以查看官方手冊。

INET_ATON(expr)
給出一個作為字符串的網絡地址的點地址表示,返回一個代表該地址數值的整數。地址可以是4或8比特地址。

mysql> select inet_ntoa(3507806248);
+-----------------------+
| inet_ntoa(3507806248) |
+-----------------------+
| 209.20.224.40|
+-----------------------+
1 row in set (0.00 sec)

產生的數字總是按照網絡字節(jié)順序。如上面,數字按照 209×2563 + 207×2562 + 224×2561 + 40 ×2560 進行計算。我們來驗算下:

mysql> select 209*POW(256,3)+207*POW(256,2)+224*POW(256,1)+40*POW(256,0);
+------------------------------------------------------------+
| 209*POW(256,3)+207*POW(256,2)+224*POW(256,1)+40*POW(256,0) |
+------------------------------------------------------------+
|3520061480 |
+------------------------------------------------------------+
1 row in set (0.02 sec)

INET_ATON() 也能理解短格式 IP 地址:

mysql> select inet_aton('127.0.0.1'),inet_aton('127.1');
+------------------------+--------------------+
| inet_aton('127.0.0.1') | inet_aton('127.1') |
+------------------------+--------------------+
|2130706433 |2130706433 |
+------------------------+--------------------+
1 row in set (0.00 sec)

可以理解成為中間2為地址默認為0。

注: 在存儲由INET_ATON() 產生的值時,推薦你使用 INT UNSIGNED 列。假如你使用 (帶符號) INT列, 則相應的第一個八位組大于127的IP 地址值會被截至 2147483647 (即, INET_ATON('127.255.255.255′) 所返回的值)。當然,直接使用bigint更加省事。

INET_NTOA(expr)
給定一個數字網絡地址 (4 或 8 比特),返回作為字符串的該地址的電地址表示。也就是inet_aton()的反函數。

mysql> select inet_ntoa(3507806248);
+-----------------------+
| inet_ntoa(3507806248) |
+-----------------------+
| 209.20.224.40|
+-----------------------+
1 row in set (0.00 sec)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 皋兰县| 金寨县| 福贡县| 大理市| 深州市| 拜城县| 中牟县| 南靖县| 沁源县| 四子王旗| 元氏县| 兰考县| 株洲县| 弥渡县| 白朗县| 曲周县| 莎车县| 璧山县| 砚山县| 监利县| 恩施市| 莒南县| 长汀县| 五峰| 芦山县| 金溪县| 葵青区| 清镇市| 沈阳市| 乐山市| 岐山县| 浦东新区| 名山县| 措勤县| 鞍山市| 卢龙县| 高州市| 竹溪县| 阿克陶县| 伊金霍洛旗| 赤壁市|