|
【发布】特别方便定义内网IP信息的inc文件
定义, 内网, 文件
此 rulzy_ipinfo.inc 文件是为了方便用户定义内网IP信息。
使用方法:
将相应文件放到对应文件夹。
参考 data\localipinfo.txt 中已有内容,根据自己的实际情况进行修改。此文件可用Windows的记事本进行编辑,注意要保存为 UTF-8 格式。本inc文件能自动跳过 UTF-8 BOM。
在你的插件源代码前面增加如下一行:
#include <rulzy_ipinfo>
然后按如下方法得到IP信息:
new country[40], area[136]
...
get_ipinfo(ip, country, area, 39, 135)
此 rulzy_ipinfo.inc 文件使用了 ipseeker 和 li_geoip 这两个模块,但只使用其中的一个,默认使用 ipseeker。注意 scripting\include\rulzy_ipinfo.inc 如下内容:
#define USE_IPSEEKER
//#define USE_LI_GEOIP
// please use only one of above
这表明是使用 ipseeker,若要使用 li_geoip 模块,改成:
//#define USE_IPSEEKER
#define USE_LI_GEOIP
// please use only one of above
请用户自行下载 QQWry.dat 或 Coralwry.dat,下载地址请查看 scripting\include\ipseeker.inc。
如果使用ipseeker,请将 QQWry.dat 或 Coralwry.dat 放到 data 文件夹下,改名为 Wry.dat。
如果使用li_geoip,请将 QQWry.dat 或 Coralwry.dat 放到 data 文件夹下,改名为 QQWry.dat。
详细说明:
使用这个 inc 文件中的函数 get_ipinfo(ip[], country[], area[], clen, alen),会首先从 data/localipinfo.txt 中读取内网IP信息,如果找到,得到的内网IP信息存于 country 和 area 中;如果没找到,则通过调用 ipseeker 或 li_geoip 中的函数来得到IP信息(默认使用 ipseeker)。
例子: ........
#include <rulzy_ipinfo>
........
public client_connect(id)
{
new ip[20], country[40], area[136], name[32];
get_user_name(id, name, 31);
get_ipinfo(ip, country, area, 39, 135);
client_print(0, print_chat, "欢迎 %s,来自 %s%s。", name, country, area);
}
如果 data/localipinfo.txt 中有如下内容:
[type2]
192.168.0.2 192.168.0.200 "广东连州网上人网吧" "%d号机" 2
而如果玩家的IP为 192.168.0.20, 则玩家登录的时候,聊天区显示的内容为:
欢迎 Player,来自 广东连州网上人网吧20号机。
而如果玩家的IP没有在 localipinfo.txt 中定义,则得到的结果与使用 ipseeker 相同。
复制代码
rulzy_ipinfo.rar (77.34 KB)
|
|