最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql 使用inet_aton和inet_ntoa處理ip地址數(shù)據(jù)的實(shí)例

 更新時間:2017年04月05日 11:57:53   投稿:jingxian  
下面小編就為大家?guī)硪黄猰ysql 使用inet_aton和inet_ntoa處理ip地址數(shù)據(jù)的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文將介紹如何在數(shù)據(jù)庫中使用合適格式保存ip地址數(shù)據(jù),并能方便的對ip地址進(jìn)行比較的方法。

1、保存ip地址到數(shù)據(jù)庫

數(shù)據(jù)庫中保存ip地址,字段一般會定義為:

`ip` char(15) NOT NULL,

因?yàn)閕p地址(255.255.255.255)的最大長度是15,使用15位char已足夠。

創(chuàng)建表user

CREATE TABLE `user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(30) NOT NULL,
 `ip` char(15) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB;

插入幾條數(shù)據(jù)

INSERT INTO `user` (`id`, `name`, `ip`) VALUES
(2, 'Abby', '192.168.1.1'),
(3, 'Daisy', '172.16.11.66'),
(4, 'Christine', '220.117.131.12');

2、mysql inet_aton 與 inet_ntoa 方法

mysql提供了兩個方法來處理ip地址

inet_aton 把ip轉(zhuǎn)為無符號整型(4-8位)

inet_ntoa 把整型的ip轉(zhuǎn)為電地址

插入數(shù)據(jù)前,先用inet_aton把ip地址轉(zhuǎn)為整型,可以節(jié)省空間,因?yàn)閏har(15) 占16字節(jié)。

顯示數(shù)據(jù)時,使用inet_ntoa把整型的ip地址轉(zhuǎn)為電地址顯示即可。

例子:

CREATE TABLE `user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(100) NOT NULL,
 `ip` int(10) unsigned NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB;

插入幾條數(shù)據(jù)

INSERT INTO `user` (`id`, `name`, `ip`) VALUES
(2, 'Abby', inet_aton('192.168.1.1')),
(3, 'Daisy', inet_aton('172.16.11.66')),
(4, 'Christine', inet_aton('220.117.131.12'));

mysql> select * from `user`;
+----+-----------+------------+
| id | name  | ip   |
+----+-----------+------------+
| 2 | Abby  | 3232235777 |
| 3 | Daisy  | 2886732610 |
| 4 | Christine | 3698688780 |
+----+-----------+------------+

查詢顯示為電地址

mysql> select id,name,inet_ntoa(ip) as ip from `user`;
+----+-----------+----------------+
| id | name  | ip    |
+----+-----------+----------------+
| 2 | Abby  | 192.168.1.1 |
| 3 | Daisy  | 172.16.11.66 |
| 4 | Christine | 220.117.131.12 |
+----+-----------+----------------+

3、比較方法

如果需要找出在某個網(wǎng)段的用戶(例如:172.16.11.1 ~ 172.16.11.100),可以利用php的ip2long方法,把ip地址轉(zhuǎn)為整型,再進(jìn)行比較。

<?php
$ip_start = '172.16.11.1';
$ip_end = '172.16.11.100';

echo 'ip2long(ip_start):'.sprintf('%u',ip2long($ip_start)); // 2886732545
echo 'ip2long(ip_end):'.sprintf('%u',ip2long($ip_end));  // 2886732644
?>

查詢:

mysql> select ip,name,inet_ntoa(ip) as ip from `user` where ip>=2886732545 and ip<=2886732644;
+------------+-------+---------------+
| ip   | name | ip   |
+------------+-------+---------------+
| 2886732610 | Daisy | 172.16.11.66 |
+------------+-------+---------------+

注意:使用ip2long方法把ip地址轉(zhuǎn)為整型時,對于大的ip會出現(xiàn)負(fù)數(shù),出現(xiàn)原因及處理方法可以參考我另一篇文章:《詳談php ip2long 出現(xiàn)負(fù)數(shù)的原因及解決方法

4、總結(jié)

1、保存ip地址到數(shù)據(jù)庫,使用unsigned int格式,插入時使用inet_aton方法把ip先轉(zhuǎn)為無符號整型,可以節(jié)省存儲空間。

2、顯示時使用inet_ntoa把整型ip地址轉(zhuǎn)為電地址。

3、php ip2long轉(zhuǎn)ip為整型時,需要注意出現(xiàn)負(fù)數(shù)。

以上這篇mysql 使用inet_aton和inet_ntoa處理ip地址數(shù)據(jù)的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Navicat中導(dǎo)入mysql大數(shù)據(jù)時出錯解決方法

    Navicat中導(dǎo)入mysql大數(shù)據(jù)時出錯解決方法

    這篇文章主要介紹了Navicat中導(dǎo)入mysql大數(shù)據(jù)時出錯解決方法,需要的朋友可以參考下
    2017-04-04
  • mysql 存儲過程詳解

    mysql 存儲過程詳解

    這篇文章主要介紹了mysql 存儲過程詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 一次mysql遷移的方案與踩坑實(shí)戰(zhàn)記錄

    一次mysql遷移的方案與踩坑實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了一次mysql遷移的方案與踩坑的相關(guān)資料,MySQL遷移是DBA日常維護(hù)中的一個工作,遷移究其本義,無非是把實(shí)際存在的物體挪走,保證該物體的完整性以及延續(xù)性,需要的朋友可以參考下
    2021-08-08
  • MySQL如何實(shí)現(xiàn)兩張表取差集

    MySQL如何實(shí)現(xiàn)兩張表取差集

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)兩張表取差集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • mysql聚合統(tǒng)計(jì)數(shù)據(jù)查詢緩慢的優(yōu)化方法

    mysql聚合統(tǒng)計(jì)數(shù)據(jù)查詢緩慢的優(yōu)化方法

    這篇文章主要給大家介紹了關(guān)于mysql聚合統(tǒng)計(jì)數(shù)據(jù)查詢緩慢的優(yōu)化方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 全面解析MySQL?Explain如何優(yōu)化SQL查詢性能

    全面解析MySQL?Explain如何優(yōu)化SQL查詢性能

    在?MySQL?中,EXPLAIN?關(guān)鍵字可以幫助我們分析查詢執(zhí)行計(jì)劃,從而優(yōu)化查詢性能,所以本文就來和大家詳細(xì)講講Explain是如何優(yōu)化SQL查詢性能的
    2023-05-05
  • MySQL 數(shù)據(jù)類型選擇原則

    MySQL 數(shù)據(jù)類型選擇原則

    MySQL支持大量的數(shù)據(jù)類型,選擇正確的類型對性能十分關(guān)鍵。本篇介紹了MySQL 的數(shù)據(jù)類型選擇原則,可以根據(jù)這些基本的原則確定數(shù)據(jù)表字段的具體數(shù)據(jù)類型。
    2021-05-05
  • MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    這篇文章主要介紹了MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法,2013錯誤主要還是在于用戶的授權(quán)問題,需要的朋友可以參考下
    2016-06-06
  • MySQL存儲引擎基礎(chǔ)知識

    MySQL存儲引擎基礎(chǔ)知識

    本篇文章主要給大家講述了MySQL存儲引擎相關(guān)基礎(chǔ)知識,有助于大家對MySQL存儲引擎有更好的理解,學(xué)習(xí)下吧。
    2017-12-12
  • MySQL <>和<=> 運(yùn)算符介紹

    MySQL <>和<=> 運(yùn)算符介紹

    這篇文章主要介紹了MySQL <>和<=> 運(yùn)算符介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

新田县| 磴口县| 甘德县| 临城县| 乐山市| 馆陶县| 衡水市| 达日县| 简阳市| 安龙县| 博客| 和静县| 措美县| 达孜县| 芦山县| 灵宝市| 静安区| 托克逊县| 阿克| 阜康市| 于都县| 秀山| 惠水县| 绥滨县| 城口县| 青田县| 丰顺县| 浑源县| 马鞍山市| 库尔勒市| 通城县| 姚安县| 尚义县| 化德县| 南汇区| 信宜市| 堆龙德庆县| 白城市| 沛县| 饶河县| 山西省|