使用mysql查詢純真IP庫的方法

2021-08-25 16:21:52 字數 868 閱讀 1406

為了把點格式的ip位址轉換成整數表示的ip位址,建立如下mysql函式:

create function ip_calc(ip varchar(20)) returns bigint(20)

return

substring_index(ip,'.',1)*256*256*256

+substring_index(substring_index(ip,'.',2),'.',-1)*256*256

+ substring_index(substring_index(ip,'.',-2),'.',1)*256

+substring_index(ip,'.',-1);

作用是:

點格式的ip地主:115.46.155.242

計算方法:115*256*256*256+46*256*256+155*256+242=1932434418

sql語句:select ip_calc('115.46.155.242');

在mysql中定位的方式為:

select * from data_ip where

ipstart <=ip_calc('115.46.155.242')

andipend >= ip_calc('115.46.155.242');

查詢結果:

ipstart    ipend  ip_area

1932427264 1932460031       廣西網通

不過查詢效率真是太低了,很慢。

純真IP庫PHP查詢

class ip 檢查ip的合法性 public function checkip ip return true 讀取little endian編碼的4個位元組轉化為長整型數 public function getlong4 讀取little endian編碼的3個位元組轉化為長整型數 public...

用Python指令碼查詢純真IP庫

usr bin env python coding utf 8 用python指令碼查詢純真ip庫 qqwry.dat的格式如下 檔案頭 8位元組 記錄區 不定長 索引區 大小由檔案頭決定 檔案頭 4位元組開始索引偏移值 4位元組結尾索引偏移值 對於國家記錄,可以有三種表示方式 字串形式 ip記錄第...

解析純真IP位址庫

一周以來,一直在做 ip位址庫的解析。從調研到編碼到優化,大概花了有七八天的時間。感覺很好玩。總結一下整個做的過程。1 關於ip 位址庫的解析方式 目前主要的解析方式有兩種 通過api,或通過ip資料庫。ip資料庫方式相對來講複雜一點,需要有完善的資料庫,還要建立相應的查詢服務。優缺點則跟api方式...