W następnym artykule przyjrzymy się, jak to możliwe uzyskać lokalizację geograficzną naszego publicznego adresu IP. Będziemy mogli to zrobić za pomocą otwartych interfejsów API i prostego skryptu bash, wszystko z terminala Ubuntu. Obecnie wszystkie urządzenia podłączone do Internetu mają adres IP, który jest ich identyfikatorem na świecie. Ten adres jest tym, którego użyjemy do uzyskania Twojej lokalizacji.
Kiedy surfujemy po Internecie, każdy serwer ma publiczny adres IP, jest to przypisywane bezpośrednio do serwera lub przez router, który wysyła ruch sieciowy do tego serwera. Adresy IP zapewniają łatwy sposób śledzenia położenia geograficznego serwera na świecie. Można to osiągnąć, korzystając z dwóch interfejsów API udostępnianych przez ipinfo.io e ipvigilante.com z którym będziemy mogli uzyskać kraj serwera, nazwę miasta i jego współrzędne geograficzne.
W kolejnych wierszach zobaczymy, jak to zrobić uzyskać geograficzne położenie adresu IP z terminala pomagając nam w curl i jq. Główny cel i zastosowanie cURL to zautomatyzowanie przesyłania plików lub nienadzorowanych sekwencji operacji, podczas gdy jq jest językiem funkcjonalnym bardzo wysokiego poziomu z obsługą wycofywania i zarządzania strumieniami danych JSON.
Geograficzne położenie adresu IP z terminala
Zainstaluj Curl i jq
Aby uzyskać lokalizację geograficzną adresu IP, będziemy musieli zainstaluj curl i jq narzędzie wiersza poleceń przetwarzanie danych JSON uzyskanych z interfejsów API geolokalizacji. Aby zainstalować oba, w terminalu (Ctrl + Alt + T) będziesz musiał napisać polecenie:
sudo apt install curl jq
Uzyskaj publiczny adres IP serwera
Przed uzyskaniem lokalizacji musisz to zrobić znać publiczny adres IP serwera, z którym się łączymy. W tym celu użyjemy następującego polecenia cURL, za pomocą którego skierujemy żądanie ipinfo.io z terminala (Ctrl + Alt + T), jak pokazano poniżej:
curl https://ipinfo.io/ip
Uzyskaj dane o położeniu geograficznym adresu IP swojego systemu dzięki API
Po wykonaniu poprzedniego polecenia uzyskamy publiczny adres IP. Gdy już to zdobędziemy, będziemy w stanie złożyć wniosek do ipvigilante.com w celu uzyskania danych geolokalizacyjnych. W tym celu użyjemy następującego polecenia w terminalu (Ctrl + Alt + T). Ważne jest, aby zastąpić publiczny adres IP tym uzyskanym przy użyciu poprzedniego polecenia.
curl https://ipvigilante.com/la-dirección-IP
Zautomatyzuj wywołanie interfejsu API za pomocą skryptu Bash
Aby zautomatyzować proces komunikacji z API, zamierzamy utwórz skrypt w pliku o nazwie ipgeolocator.sh (nazwa jest opcjonalna). Do jego stworzenia będziemy mogli skorzystać z dowolnego edytora linii poleceń, z którym każdy będzie się czuł najbardziej komfortowo.
vim ipgeolocalizador.sh
Kiedy edytor się otworzy, w środku po prostu musisz wklej linię pokazane poniżej:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Po wklejeniu wszystko, co musisz zrobić, to zapisać plik i wyjść z edytora. Po tym będzie to konieczne uczynić skrypt wykonywalnym. Zamierzamy to zrobić, pisząc w tym samym terminalu:
chmod +x ipgeolocalizador.sh
W tym momencie możemy uruchom skrypt w następujący sposób, aby uzyskać lokalizację geograficzną adresu IP notarialnego:
./ipgeolocalizador.sh
Powyższy skrypt wyświetla nazwę miasta i kraju wraz z przybliżonymi współrzędnymi szerokości i długości geograficznej. Prawda jest taka, że Nie znam marginesu błędu, jaki może mieć.
Jeśli nie chcesz zapisywać powyższego długiego polecenia do pliku, możesz również uruchomić to samo polecenie bezpośrednio w terminalu (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
W tym krótkim artykule widzieliśmy, jak to zrobić uzyskaj geolokalizację adresu IP z Ubuntu za pomocą terminala oraz poleceń curl i jq. Możesz uzyskać więcej informacji na temat jq lub o cURL w odpowiednich artykułach w Wikipedii.