Ip2Region有中文和數據結構支持,是一個很好的第三方ip轉換工具。
java:
<dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>1.7</version> </dependency>
import org.lionsoul.ip2region.DataBlock;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher;
public class Ip2Region { public static void main(String[] args) throws Exception { // ip String ip = "121.33.59.18"; // 判斷是否為IP地址 (可用) //boolean isIpAddress = Util.isIpAddress(ip); // ip和long互轉 (可用) // long ipLong = Util.ip2long(ip); // String strIp = Util.long2ip(ipLong); // 根據ip進行位置信息搜索 DbConfig config = new DbConfig(); // 獲取ip庫的位置(放在src下)(直接通過測試類獲取文件Ip2RegionTest為測試類) String dbfile = Ip2Region.class.getResource("/ip2region.db").getPath(); //獲取src/java/resources路徑下ip2region.db文件地址 DbSearcher searcher = new DbSearcher(config, dbfile); // 采用Btree搜索 DataBlock block = searcher.btreeSearch(ip); // 打印位置信息(格式:國家|大區|省份|城市|運營商) System.out.println(block.getRegion()); } }
scala:
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>1.7</version>
</dependency>
import org.junit.Test
import org.lionsoul.ip2region.{DataBlock, DbConfig, DbSearcher}
class IPTest { /** * IP -> Region, City */ @Test def ip2Region(): Unit = { val searcher = new DbSearcher(new DbConfig(), "dataset/ip2region.db") val region = searcher.btreeSearch("121.33.59.18").getRegion println(region) } }
地址:https://pan.baidu.com/s/13W7EFg-GiBVkMjNdl-a5RA
密碼:0wi6