Инфо из geoip.in:
/**
* Lookup the full country name for the given IP address. Sets the buffer to "error" on
* an unsuccessful lookup.
*
* @param ip The IP address to lookup.
* @param result The result of the geoip lookup.
* @param len The maximum length of the result buffer.
*/
native geoip_country(const ip[], result[], len=45);
Синтаксис:
geoip_country ( ip[], result[], [ len = 45 ] )
- ip[] - ip адрес игрока, чью страну хотим узнать
- result[] - Массив для получения результата
- [ len = 45 ] - Максимальная длина 45 знаков
Примечание: ip адреса 10.*.*.* и 192.168.*.* Это зарезервированные диапазоны под локальные сети.
Т.е. внутри своего провайдера у вас страна не определиться.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <geoip>
#define PLUGIN "[geoip.inc] geoip_country"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /get_country","country")
register_clcmd("say /gc","country")
}
public country(id){
new ip[18]
get_user_ip(id,ip,17,1)
new country[46]
geoip_country ( ip, country, 45 )
client_print(0,print_chat,"Сountry: %s",country)
}
Описание:
Что бы получить данные о стране, необходимо сначала получить информацию об ip адресе игрока, с помощью функции get_user_ip.
Далее объявить новый массив для записи страны игрока, назовем его country. И далее воспользуемся функцией получения страны игрока, указав в ней заранее полученный ip адрес, массив для записи, и максимальную длинну.
Полученный результат выведем в общий чат.
Скачать базу данных:
Внимание! У Вас нет прав для просмотра скрытого текста.
Обновлением базы данных занимается компания Maxmind.
С их сайта вы сможете всегда скачать последнюю бесплатную версию базы данных.
Так как ip адреса регулярно изменяются между провайдерами.