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

IP處理函數(shù)inet_aton()和inet_ntoa()使用說明

 更新時間:2012年03月24日 00:45:46   作者:  
IP處理函數(shù)inet_aton()和inet_ntoa()使用說明,需要的朋友可以參考下
MYSql的IP對int的轉(zhuǎn)換函數(shù)
select inet_aton(ip) from table_name;

網(wǎng)絡(luò)地址:
192.168.33.123
每一個值最大不會越過255,也就是十六進制的FF,兩個Byte剛好表示的最大值是255,
這樣子,就可以用一個32位的整形來保存這個地址
192 168 33 123
1100 0000 1010 1000 0010 0001 0111 1011
把這些二進制合在一起就是32位的數(shù)了
11000000101010000010000101111011
十進制為
3232244091
* INET_ATON(expr)
給出一個作為字符串的網(wǎng)絡(luò)地址的"點地址"(如127.0.0.1)表示,返回一個代表該地址數(shù)值的整數(shù)。地址可以是4或8比特地址。
mysql> SELECT INET_ATON('209.207.224.40');
-> 3520061480
產(chǎn)生的數(shù)字總是按照網(wǎng)絡(luò)字節(jié)順序。如上面的例子,數(shù)字按照 209×2^24 + 207×2^16 + 224×2^8 + 40 進行計算。
INET_ATON() 也能理解短格式 IP 地址:

mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
-> 2130706433, 2130706433
注釋: 在存儲由INET_ATON() 產(chǎn)生的值時,推薦你使用 INT UNSIGNED 列。假如你使用 (帶符號) INT列, 則相應(yīng)的第一個八位組大于127的IP 地址值會被截至 2147483647 (即, INET_ATON('127.255.255.255') 所返回的值)。請參見11.2節(jié),“數(shù)值類型”。
* INET_NTOA(expr)
給定一個數(shù)字網(wǎng)絡(luò)地址 (4 或 8 比特),返回作為字符串的該地址的電地址表示。
mysql> SELECT INET_NTOA(3520061480);

-> '209.207.224.40'


在做項目時,并不知道這兩個函數(shù),所以對IP的處理都是自己寫的函數(shù),但是使用時效率卻是十分的差,下面函數(shù)是把IP轉(zhuǎn)化成整數(shù):
復(fù)制代碼 代碼如下:

CREATE FUNCTION `transIPtoInt`(ip char(31)) RETURNS char(31)
begin
DECLARE value1 CHAR(10);
DECLARE value2 CHAR(10);
DECLARE value3 CHAR(10);
DECLARE value4 CHAR(10);
set value1=SUBSTRING_INDEX(ip, '.', 1);
set value2=SUBSTRING_INDEX(ip, '.', 2);
set value2=SUBSTRING_INDEX(value2, '.', -1);
set value3=SUBSTRING_INDEX(ip, '.', -2);
set value3=SUBSTRING_INDEX(value3, '.', 1);
set value4=SUBSTRING_INDEX(ip, '.', -1);
set value1=value1<<24;
set value2=value2<<16;
set value3=value3<<8;
return value1+value2+value3+value4;
end;

為了IP地址比較的方便,我還寫了一個把IP地址中每一段都補足三位的函數(shù),如下:
復(fù)制代碼 代碼如下:

CREATE FUNCTION `fillIp`(ip char(31)) RETURNS char(31)
begin
DECLARE value1 CHAR(31);
DECLARE value2 CHAR(10);
DECLARE value3 CHAR(10);
DECLARE value4 CHAR(10);
set value1=SUBSTRING_INDEX(ip, '.', 1);
set value2=SUBSTRING_INDEX(ip, '.', 2);
set value2=SUBSTRING_INDEX(value2, '.', -1);
set value3=SUBSTRING_INDEX(ip, '.', -2);
set value3=SUBSTRING_INDEX(value3, '.', 1);
set value4=SUBSTRING_INDEX(ip, '.', -1);
set value1=LPAD(value1,3,'0');
set value2=LPAD(value2,3,'0');
set value3=LPAD(value3,3,'0');
set value4=LPAD(value4,3,'0');
return CONCAT(value1,'.',value2,'.',value3,'.',value4);
end;

以下是一些補充
* INET_ATON(expr)
給出一個作為字符串的網(wǎng)絡(luò)地址的"點地址"(如127.0.0.1)表示,返回一個代表該地址數(shù)值的整數(shù)。地址可以是4或8比特地址。
mysql> SELECT INET_ATON('209.207.224.40');
-> 3520061480
產(chǎn)生的數(shù)字總是按照網(wǎng)絡(luò)字節(jié)順序。如上面的例子,數(shù)字按照 209×2563 + 207×2562 + 224×256 + 40 進行計算。
INET_ATON() 也能理解短格式 IP 地址:
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
-> 2130706433, 2130706433
注釋: 在存儲由INET_ATON() 產(chǎn)生的值時,推薦你使用 INT UNSIGNED 列。假如你使用 (帶符號) INT列, 則相應(yīng)的第一個八位組大于127的IP 地址值會被截至 2147483647 (即, INET_ATON('127.255.255.255') 所返回的值)。請參見MySQL文檔中的“數(shù)值類型”。
* INET_NTOA(expr)
給定一個數(shù)字網(wǎng)絡(luò)地址 (4 或 8 比特),返回作為字符串的該地址的電地址表示。
*
mysql> SELECT INET_NTOA(3520061480);
-> '209.207.224.40'

--------------------------------------------------------------------------------------------------

整型字段的比較比字符串效率高很多,這也符合一項優(yōu)化原則:字段類型定義使用最合適(最?。?,最簡單的數(shù)據(jù)類型。
inet_aton()算法,其實借用了國際上對各國IP地址的區(qū)分中使用的ip number。
a.b.c.d 的ip number是:
a * 256的3次方 + b * 256的2次方 + c * 256的1次方 + d * 256的0次方。

--------------------------------------------------------------------------------------------------

利用mysql的內(nèi)置函數(shù)處理時間戳問題
eg : select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
結(jié)果: 2004 3rd August 03:35:48 2004

相關(guān)文章

  • sql語句中日期相減的操作實例代碼

    sql語句中日期相減的操作實例代碼

    在工作中遇到時間處理,學習了一下SQL的日期處理方面,下面這篇文章主要給大家介紹了關(guān)于sql語句中日期相減操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • MySQL里面的子查詢的基本使用

    MySQL里面的子查詢的基本使用

    本文主要介紹了MySQL里面的子查詢的基本使用,從定義到分類使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MySQL函數(shù)與存儲過程字符串長度限制的解決

    MySQL函數(shù)與存儲過程字符串長度限制的解決

    本文主要介紹了MySQL函數(shù)與存儲過程字符串長度限制的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決

    MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決

    這篇文章主要介紹了MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 如何設(shè)置mysql允許外部連接訪問

    如何設(shè)置mysql允許外部連接訪問

    大家好,本篇文章主要講的是如何設(shè)置mysql允許外部連接訪問,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 淺談MySQL之select優(yōu)化方案

    淺談MySQL之select優(yōu)化方案

    我們是否看到過在公司中許多查詢語句都是select * xxxx,本文就主要介紹了MySQL之select優(yōu)化方案,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • MySQL8.0中你必須要知道的索引新特性

    MySQL8.0中你必須要知道的索引新特性

    MySQL8.0索引新特性,支持降序索引,降序索引以降序存儲鍵值,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0中你必須要知道的索引新特性的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • MySql中JOIN的用法示例詳解

    MySql中JOIN的用法示例詳解

    join顧名思義就是連接兩張表,大致分為內(nèi)連接,外連接,右連接,左連接,自然連接,今天通過本文給大家介紹MySql中JOIN的用法詳解,感興趣的朋友一起看看吧
    2022-03-03
  • mysql5.0入侵測試以及防范方法分享

    mysql5.0入侵測試以及防范方法分享

    這篇文章主要介紹了mysql5入侵測試以及防范方法,大家參考使用吧
    2013-12-12
  • MySQL聯(lián)合索引用法示例

    MySQL聯(lián)合索引用法示例

    這篇文章主要介紹了MySQL聯(lián)合索引用法,結(jié)合實例形式分析了MySQL聯(lián)合索引的具體定義與使用方法,需要的朋友可以參考下
    2016-09-09

最新評論

鞍山市| 乐至县| 喀喇| 蕲春县| 达孜县| 浙江省| 乌兰浩特市| 喀喇| 荣成市| 青冈县| 怀集县| 吐鲁番市| 呼伦贝尔市| 万源市| 襄垣县| 墨玉县| 仪征市| 江华| 登封市| 阿尔山市| 澳门| 隆子县| 岢岚县| 大连市| 保康县| 上饶县| 务川| 安平县| 长沙县| 卢龙县| 尖扎县| 吉林省| 梨树县| 定结县| 中方县| 吴江市| 乐至县| 兴宁市| 平舆县| 阳泉市| 扎兰屯市|