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"): Скрипт выполнен успешно.