Как я могу найти геолокацию НЕСКОЛЬКИХ IP-адресов через Google Apps Script в Google Sheets? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть список IP-адресов в столбце A моего листа, и мне нужно перевести эти IP-адреса в страну и город в следующих столбцах. Как я могу сделать это с помощью скрипта Google Apps в листах Google?

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вы можете использовать IP2Location Google Sheet Add-On , для которого требуется подписка на IP2Location Web Service .

Установка

Установить из Google Sheet через меню (Дополнения -> Получить дополнения ... -> IP2Location)

Или установить по прямой ссылке https://chrome.google.com/webstore/detail/ip2location/bhbkibfamajihabmhlebcllfmijlflnm.

Нажмите на надстройки в меню Google Sheet.

Перейдите к IP2Расположение -> Изменить настройки.

Введите ключ API и нажмите Войти.

Пример использования

=IP2Location(A1:A20, "WS24")

В приведенном выше примере предполагается, что у вас есть IP-адреса от A1 до A20, и вы хотите вызвать пакет WS24. Введите вышеприведенное в B1, и результаты появятся рядом с вашим столбцом IP-адреса.

Если вам просто нужны страна и город, вы можете использовать вместо него «WS3».

Для получения дополнительной информации оостальные пакеты и возвращенные результаты см. https://www.ip2location.com/web-service/ip2location

0 голосов
/ 16 октября 2019

Вы хотите указать страну и город IP-адресов в столбце A.

В Google Sheets нет встроенной функции для этого, а для API Google Maps Geolocation требуется платежная учетная запись (хотя есть 200 долларов ежемесячного кредита , который разрешает эквивалент 40 000 запросов геолокации ).

В StackOverflow существует множество примеров использования внешнего API, хотя очень немногие из них используют Google Sheets. Кроме того, ни один из них не является особенно новым, а некоторые устарели из-за истечения времени, и другие API могут предлагать «бесплатные» службы геолокации, но для доступа к API требуется учетная запись.

Этот ответ демонстрирует процесс использования iplocate.com , который не требует учетной записи для доступа к их бесплатному API.


function so5840531801() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetname = "IP_sheet";
  var sheet = ss.getSheetByName(sheetname);

  //get the IP values
  var LR = sheet.getLastRow();
  var ipdata = sheet.getRange(1,1,LR,1).getValues();
  var iplength  = ipdata.length;
  // Logger.log(iplength);// DEBUG 

    // props to [wcndave](https://stackoverflow.com/a/20456709/1330560)
    // for link to iplocate
    // iplocate have an API but dont require an account
  for (var i=0; i<iplength; i++){
    // Logger.log("DEBUG: i="+i+", IP = "+ipdata[i][0]);
    var url = "https://www.iplocate.io/api/lookup/"+ipdata[i][0];
    // Logger.log("DEBUG: url = "+url)
    var response = UrlFetchApp.fetch(url);
    // Logger.log(response.getContentText());//DEBUG
    var jsondata = JSON.parse(response);  
    Logger.log("DEBUG: Country = "+jsondata.country+", City = "+jsondata.city);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...