阅读量:0
Java中可以使用第三方库来根据IP地址获取归属地,其中比较常用的库是GeoIP2和ip2region。
- 使用GeoIP2库:
首先需要下载GeoIP2的Java库,然后在代码中使用该库来获取IP地址的归属地。
import com.maxmind.geoip2.DatabaseReader; import com.maxmind.geoip2.model.CityResponse; import java.io.File; import java.net.InetAddress; public class IPUtil { public static void main(String[] args) throws Exception { File database = new File("/path/to/GeoLite2-City.mmdb"); DatabaseReader reader = new DatabaseReader.Builder(database).build(); InetAddress ipAddress = InetAddress.getByName("128.101.101.101"); CityResponse response = reader.city(ipAddress); String country = response.getCountry().getName(); String city = response.getCity().getName(); System.out.println("Country: " + country); System.out.println("City: " + city); } }
- 使用ip2region库:
ip2region是一个纯真IP数据库的java实现,可以根据IP地址快速查找归属地。
import org.lionsoul.ip2region.*; import java.io.IOException; public class IPUtil { public static void main(String[] args) throws DbMakerConfigException, IOException { DbConfig config = new DbConfig(); DbSearcher searcher = new DbSearcher(config, "/path/to/ip2region.db"); DataBlock dataBlock = searcher.btreeSearch("128.101.101.101"); String region = dataBlock.getRegion(); System.out.println("Region: " + region); } }
以上是两种常用的方法,可以根据实际需求选择合适的库来获取IP地址的归属地。