MyChat Scripts: GeoIPGetFullInfoAsJSON, получить полную информацию про геопозицию пользователя по его IP адресу

MyChat Scripts: GeoIPGetFullInfoAsJSON, получить полную информацию про геопозицию пользователя по его IP адресу

"Для разработчиков", "Серверные скрипты", "Описание функций", "Интеграции", "GeoIP", "GeoIPGetFullInfoAsJSON".

 

Получить полную информацию о пользователе по его IP адресу в виде JSON объекта. Для работы функции интернет не нужен, используется локальная база данных.

 

Синтаксис

function GeoIPGetFullInfoAsJSON(sIP: string): string;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

sIP

string

IP адрес пользователя.

 

Результат функции

Пустой JSON объект, если IP адрес указан неверно либо ничего не найдено. В противном случае функция вернёт JSON объект, который затем можно будет обработать с помощью функции JSONGetString:

 

{

 "LocaleCode"          : "ru",

 "ContinentCode"       : "EU",

 "ContinentName"       : "Европа",

 "CountryISOCode"      : "GR",

 "CountryName"         : "Греция",

 "SubDivision1ISOCode" : "J",

 "SubDivision1Name"    : "",

 "SubDivision1ISOCode" : "12",

 "SubDivision2Name"    : "Аркадия",

 "CityName"            : "Триполи",

 "MetroCode"           : "",

 "TimeZone"            : "Europe/Athens"

}

 

Пример

const
  IP     = '94.45.98.236';
  FIELDS = 'LocaleCode,ContinentCode,ContinentName,CountryISOCode,CountryName,SubDivision1ISOCode,' +
           'SubDivision1Name,SubDivision1ISOCode,SubDivision2Name,CityName,MetroCode,TimeZone'; 
var
  sSmallInfo, sFullInfo, s, sFieldName, sData: string;
begin
  sSmallInfo := GeoIPGetQuickInfo(IP);
  sFullInfo  := GeoIPGetFullInfoAsJSON(IP);
  
  mLogScript('IP address: ' + IP, '');
  
    if length(sSmallInfo) > 0 then begin
      mLogScript('Quick info: ' + sSmallInfo, '');
      
      mLogScript('Full info:', ''); 
      
      s := FIELDS;
      
        while length(s) > 0 do begin
          sFieldName := Fetch(s, ',');
          
            if JSONGetString(sFullInfo, sFieldName, sData) = 0 then
            if length(sData) > 0 then
              mLogScript(sData, sFieldName);
        end;
    end else mLogScript('No information', '');
end.

Результат работы скрипта

[17:25:48] (Log "GEOIP"): IP address: 94.45.98.236

[17:25:48] (Log "GEOIP"): Quick info: Украина|Фастов

[17:25:48] (Log "GEOIP"): Full info:

[17:25:48] (Log "GEOIP"): [LocaleCode] ru

[17:25:48] (Log "GEOIP"): [ContinentCode] EU

[17:25:48] (Log "GEOIP"): [ContinentName] Европа

[17:25:48] (Log "GEOIP"): [CountryISOCode] UA

[17:25:48] (Log "GEOIP"): [CountryName] Украина

[17:25:48] (Log "GEOIP"): [SubDivision1Name] Киевская область

[17:25:48] (Log "GEOIP"): [CityName] Фастов

[17:25:48] (Log "GEOIP"): [TimeZone] Europe/Kiev

[17:25:48] (Run "GEOIP"): Время выполнения скрипта: 17 мс

[17:25:48] (Run "GEOIP"): Скрипт выполнен успешно.

 

Ещё посмотреть

Fetch

GeoIPGetQuickInfo

Length

mLogScript