IP2Location.io Java SDK — это оболочка для двух API; первый из них — API геолокации IP2Location.io, а второй — API поиска домена IP2WHOIS. В статье мы расскажем, как создать новый проект Maven. Затем мы добавим IP2Location.io Java SDK в качестве зависимости от Maven. Наконец, мы покажем, как запустить получившееся приложение для получения данных из обоих API. Наша демонстрационная платформа — это машина с Debian 11, поэтому все шаги ниже будут для нее.
ПРИМЕЧАНИЕ. Прежде чем продолжить, вам потребуется ключ API IP2Location.io. Доступен Бесплатный ключ API.
Установите Java Runtime Environment (JRE) и Java Development Kit (JDK)
Прежде чем что-либо устанавливать, давайте просто запустим приведенную ниже команду, чтобы получить последний список доступных пакетов.
sudo apt update
Затем установите JRE с помощью приведенной ниже команды.
sudo apt install default-jre
После этого установите JDK с помощью приведенной ниже команды.
sudo apt install default-jdk
Если вам нужно проверить версию для JRE и JDK, вы можете запустить 2 команды ниже.
java -version
javac-версия
Установить Мавен
Прежде чем запускать приведенные ниже команды, проверьте на https://maven.apache.org/download.cgi, чтобы узнать, какая последняя версия Maven, и измените приведенные ниже команды, чтобы использовать последнюю версию.
Давайте загрузим Maven с помощью wget.
wget https://dlcdn.apache.org/maven/maven-3/3.9.2/binaries/apache-maven-3.9.2-bin.tar.gz
Извлеките папку из загруженного файла в папку /opt.
sudo tar xzvf apache-maven-3.9.2-bin.tar.gz -C /opt
Вы должны увидеть папку внутри папки /opt.
Далее мы создадим символическую ссылку на эту папку.
sudo ln -s /opt/apache-maven-3.9.2 /opt/maven
Требуется настройка переменных среды
Есть несколько переменных среды, которые нам нужно настроить, прежде чем мы сможем начать использовать Maven.
Прежде всего нам нужно определить путь для команды java.
Запустите приведенную ниже команду, чтобы определить путь.
sudo update-alternatives - config java
В нашем случае это путь /usr/lib/jvm/java-11-openjdk-amd64/bin/java, но вы можете увидеть несколько, если в вашей системе установлено несколько версий. Вы можете выбрать тот, который хотите использовать.
Теперь запустите команду ниже, чтобы отредактировать файл с именем maven.sh, где мы укажем наши переменные.
sudo nano /etc/profile.d/maven.sh
Вставьте приведенное ниже в этот файл.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export M2_HOME=/opt/maven export PATH=${M2_HOME}/bin:${PATH}
ПРИМЕЧАНИЕ. Путь JAVA_HOME НЕ должен включать часть папки bin.
После сохранения изменений в maven.sh нам нужно загрузить переменные в текущий сеанс.
source /etc/profile.d/maven.sh
Проверьте, правильно ли установлен и настроен Maven.
mvn -version
Вот и все, что касается установки. Теперь мы можем перейти к стороне кодирования.
Создание нового проекта Maven из шаблона
Maven имеет удобную функцию для создания базового проекта Maven из шаблона с именем maven-archetype-quickstart, поэтому нам не нужно создавать все папки и основные файлы вручную.
Прежде всего, создайте папку с именем Maven_app в своей домашней папке и перейдите в нее.
mkdir Maven_app cd Maven_app
Затем запустите приведенную ниже команду, чтобы создать базовый проект.
mvn archetype:generate -DgroupId=com.example.ip2locationio -DartifactId=IP2LocationIOExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
В нашем случае идентификатор группы — com.example.ip2locationio, а наш проект называется IP2LocationIOExample.
Созданная структура папок выглядит так, как показано ниже.
Для целей этой статьи мы не будем выполнять никаких тестов, поэтому мы проигнорируем AppTest.java и просто изменим pom.xml и Файлы App.java.
Добавление Java SDK IP2Location.io в зависимость Maven
В Maven все зависимости должны быть добавлены в файл pom.xml. Итак, давайте сделаем это сейчас для IP2Location.io Java SDK. Перед этим проверьте последнюю версию Java SDK IP2Location.io на https://central.sonatype.com/artifact/com.ip2location/ip2location-io-java/ и используйте версию в pom.xml ниже.
Перейдите в папку IP2LocationIOExample и отредактируйте файл pom.xml.
cd IP2LocationIOExample nano pom.xml
Добавьте приведенное ниже в раздел ‹dependencies› и измените версию на последнюю.
<dependency> <groupId>com.ip2location</groupId> <artifactId>ip2location-io-java</artifactId> <version>1.0.0</version> </dependency>
Сохраните изменения.
Измените файл App.java, чтобы импортировать и использовать IP2Location.io Java SDK.
Теперь давайте отредактируем фактический код.
nano src/main/java/com/example/ip2locationio/App.java
Выше приведен исходный код, сгенерированный Maven. Мы изменим его, чтобы он стал ниже.
Не забудьте изменить код, включив в него собственный ключ API IP2Location.io.
package com.example.ip2locationio; import com.google.gson.JsonObject; import com.ip2location.Configuration; import com.ip2location.IPGeolocation; import com.ip2location.DomainWhois; public class App { public static void main( String[] args ) throws Exception { // Configures IP2Location.io API key Configuration config = new Configuration(); String apiKey = "YOUR_API_KEY"; config.setApiKey(apiKey); IPGeolocation ipl = new IPGeolocation(config); // Lookup ip address geolocation data JsonObject myObj = ipl.Lookup("8.8.8.8", "en"); // the language parameter is only available for Plus and Security plans System.out.println(myObj); DomainWhois whois = new DomainWhois(config); // Lookup domain information JsonObject myObj2 = whois.Lookup("locaproxy.com"); System.out.println(myObj2); } }
Тестирование кода
Чтобы скомпилировать код, выполните следующую команду:
mvn clean package
Чтобы запустить приложение, выполните следующую команду:
mvn exec:java -Dexec.mainClass="com.example.ip2locationio.App" -Dexec.cleanupDaemonThreads=false
Вы увидите результаты, как показано ниже:
{"ip":"8.8.8.8","country_code":"US","country_name":"United States of America","region_name":"California","city_name":"Mountain View","latitude":37.405992,"longitude":-122.078515,"zip_code":"94043","time_zone":"-07:00","asn":"15169","as":"Google LLC","isp":"Google LLC","domain":"google.com","net_speed":"T1","idd_code":"1","area_code":"650","weather_station_code":"USCA0746","weather_station_name":"Mountain View","mcc":"-","mnc":"-","mobile_brand":"-","elevation":32,"usage_type":"DCH","address_type":"Anycast","continent":{"name":"North America","code":"NA","hemisphere":["north","west"],"translation":{"lang":"en","value":"North America"}},"district":"Santa Clara County","country":{"name":"United States of America","alpha3_code":"USA","numeric_code":840,"demonym":"Americans","flag":"https://cdn.ip2location.io/assets/img/flags/us.png","capital":"Washington, D.C.","total_area":9826675,"population":331002651,"currency":{"code":"USD","name":"United States Dollar","symbol":"$"},"language":{"code":"EN","name":"English"},"tld":"us","translation":{"lang":"en","value":"United States of America"}},"region":{"name":"California","code":"US-CA","translation":{"lang":"en","value":"California"}},"city":{"name":"Mountain View","translation":{"lang":"en","value":"Mountain View"}},"time_zone_info":{"olson":"America/Los_Angeles","current_time":"2023-06-07T20:10:10-07:00","gmt_offset":-25200,"is_dst":true,"sunrise":"05:47","sunset":"20:27"},"geotargeting":{"metro":"807"},"ads_category":"IAB19-11","ads_category_name":"Data Centers","is_proxy":false,"proxy":{"last_seen":7,"proxy_type":"DCH","threat":"-","provider":"-"}} {"domain":"locaproxy.com","domain_id":"1710914405_DOMAIN_COM-VRSN","status":"clientTransferProhibited https://icann.org/epp#clientTransferProhibited","create_date":"2012-04-03T02:34:32Z","update_date":"2021-12-03T02:54:57Z","expire_date":"2024-04-03T02:34:32Z","domain_age":4083,"whois_server":"whois.godaddy.com","registrar":{"iana_id":"146","name":"GoDaddy.com, LLC","url":"https://www.godaddy.com"},"registrant":{"name":"Registration Private","organization":"Domains By Proxy, LLC","street_address":"DomainsByProxy.com","city":"Tempe","region":"Arizona","zip_code":"85284","country":"US","phone":"+1.4806242599","fax":"+1.4806242598","email":"Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=LOCAPROXY.COM"},"admin":{"name":"Registration Private","organization":"Domains By Proxy, LLC","street_address":"DomainsByProxy.com","city":"Tempe","region":"Arizona","zip_code":"85284","country":"US","phone":"+1.4806242599","fax":"+1.4806242598","email":"Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=LOCAPROXY.COM"},"tech":{"name":"Registration Private","organization":"Domains By Proxy, LLC","street_address":"DomainsByProxy.com","city":"Tempe","region":"Arizona","zip_code":"85284","country":"US","phone":"+1.4806242599","fax":"+1.4806242598","email":"Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=LOCAPROXY.COM"},"billing":{"name":"","organization":"","street_address":"","city":"","region":"","zip_code":"","country":"","phone":"","fax":"","email":""},"nameservers":["vera.ns.cloudflare.com","walt.ns.cloudflare.com"]}
Заключение
Так просто интегрировать IP2Location.io Java SDK в ваш проект Maven. Надеюсь, эта статья оказалась вам полезной в процессе интеграции IP2Location.io и IP2WHOIS в ваши приложения.