根據IP判斷地理位置

2021-07-31 02:58:11 字數 1287 閱讀 2502

將資料檔案按行讀入記憶體,ip資料檔案的格式如下:

起始ip

結束ip國家省

市區未知運營商

10000000

20000000

中國北京市

北京市海淀區

未知電信

讀取檔案:

listlines = null;

lines = files.readlines(ipfile, charsets.utf_8);

遍歷每一行資訊後存放在immutablelist中:

static immutablelist start_ip_index;

static immutablelist end_ip_index;

static immutablelist ip_info;

start_ip_index = new immutablelist.builder().addall(startipindextmp.iterator()).build();

end_ip_index = new immutablelist.builder().addall(endipindextmp.iterator()).build();

ip_info = new immutablelist.builder().addall(ipinfotmp.iterator()).build();

需要查詢的ip為標準的***.***.***.***格式

在進行查詢之前需要判斷該ip字串是否有效:

public

static

boolean

isvalid(string ipstr) |[1-9]\\d|\\d)\\.)(25[0-5]|2[0-4]\\d|1\\d|[1-9]\\d|\\d)";

return (ipstr.matches(ip_format)) ? true : false;

}

public

static

long

ip2long(string ipstr)

return ipinlong;

}

和普通的二分相比,鍵的值是一對數,而且這對數的左值小於等於右值

改下了二分查詢如下:

public

intbinarysearch(long ip)

return -1;

}

根據ip查詢地理位置

圍繞純真資料庫的一系列小工具 文件,文件 文件純真資料庫utf 8版本。轉換工具也以開源形式發布,用php實現 nali,名字取自中文 的拼音。nali包含一組命令列程式,其主要功能就是把一些網路工具的輸出的ip字串,附加上地理位置資訊 使用純真資料庫 例如218.65.137.1會變成218.65...

Python根據IP查詢所在地理位置與運營商

python根據ip查詢所在地理位置與運營商 usr bin env python encoding utf8 author linuxhub.org 根據ip位址查詢出ip所在的地理位置 def get ip info ip import requests ip位址庫介面 r requests.g...

洋山港 地理位置

洋山港區位於浙江省嵊泗縣境內。由大洋山港口區和小洋山港口區組成。可供開發的深水岸線4900公尺,是上海國際航運中心的深水港區。位於嵊泗海域西部大洋山島的北岸。東北距縣城21.41海浬,西北距上海市蘆潮港18.9海浬。大洋山島海岸線總長16697公尺 其中基岩10214公尺 可利用岸線3200公尺,聖...