国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 永年县| 盘锦市| 广宁县| 赞皇县| 绵竹市| 滨海县| 永丰县| 兴安县| 自治县| 青岛市| 修水县| 荔波县| 开阳县| 恩施市| 响水县| 滦南县| 会昌县| 安西县| 桐柏县| 吴忠市| 阳春市| 杭锦后旗| 博爱县| 体育| 利津县| 泽普县| 长顺县| 玛纳斯县| 遂昌县| 沈丘县| 句容市| 克什克腾旗| 深圳市| 黄冈市| 乌鲁木齐市| 葵青区| 旌德县| 南京市| 东源县| 长垣县| 大田县|