Название: whois Лицензия: GNU GPLv3 Автор: Saymon Платформа: RusHub Зависимости: LuaSocket, http://mydc.ru/r/?https://github.com/craigmj/json4lua/blob/master/json4lua/json/json.lua Репозиторий: http://mydc.ru/r/?http://opensource.hub21.ru/rushub-lua-scripts/src Описание: Получение информации об IP из whois. (Местоположение, провайдер, etc). В отличии от похожих имеющихся скриптов на данном форуме использует-API сервиса http://mydc.ru/r/?http://ip-api.com. Для этого и нужен модуль работы с JSON.
Скрипт не имеет меню. Для использования надо набрать в чате +whois ipaddress. В агрументах команды вместо IP-адреса можно указать параметр -h. В таком случае покажет справку по использованию. Так-же использование команды по умолчанию доступно только профилю 0 (Можно перенастроить).
В репозиторий был добавлен ещё один скрипт с аналогичным функционалом - whois_hub21.ru.lua ( 5.56 килобайт )
: 5
Использует мой собственный самопильный rest-like сервис для получения данных. Сервис использует базы данных GeoLiteCity, GeoIPCountryWhois. Автоматическое обновление баз данных происходит раз в неделю по субботам. На сервисе существует жёсткое ограничение на один запрос в секунду.
Пример запроса
Код
[14:13:22] <[БОТ]-Дворецкий> Result for: 109.248.163.117 Country: Russian Federation Continent: EU ISP: AS43660 Shupashkartrans-K Ltd. City: Cheboksary Network addressing: 109.248.0.0-109.248.255.255 TimeZone: Europe/Samara Google map: http://maps.google.ru/maps?hl=ru&ll=56,1322,47,2519&q=Cheboksary+Russian Federation&z=6&output=embed
Из требований к данному скрипту - так-же lua-socket+json. На случай запроса не корректных ip-адресов возможные ошибки, которые возвратит сервис:
Раскрывающийся текст
Код
{'status': 'error', 'message': 'Argument ip address is a nil value.'} {'status':'error', 'message': 'This ip address is reserved per RFC 1918.'} {'status':'error', 'message': 'This ip address is within thereserved IPv4 Network range'} {'status':'error','message': 'This ip address is multicast (RFC 3171)'} {'status': 'error', 'message': 'This ip address is the unspecified address as defined in RFC 5735 3.'} {'status':'error', 'message': 'This ip address is a loopback per RFC 3330.'} {"status": "error", "message": "'test' does not appear to be an IPv4 or IPv6 address"} {"status": "error", "message": "IPv6 is not supported"}