加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Discuz!开发之IP地址的解析技巧

发布时间:2021-11-30 17:52:46 所属栏目:PHP教程 来源:互联网
导读:Discuz!内置了ip库和ip地址解析方法,定义文件: sourcefunctionfunction_misc.php 相关函数 01 [php] view plain copy 02 function convertip($ip) { 03 $return = ; 04 if(preg_match(/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/, $ip)) { 05 $iparray = ex
Discuz!内置了ip库和ip地址解析方法,定义文件:
sourcefunctionfunction_misc.php
相关函数
01
[php] view plain copy
02
function convertip($ip) {
03
    $return = '';
04
    if(preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip)) {
05
        $iparray = explode('.', $ip);
06
        if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] <= 31))) {
07
            $return = '- LAN';
08
        } elseif($iparray[0] > 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255) {
09
            $return = '- Invalid IP Address';
10
        } else {
11
            $tinyipfile = DISCUZ_ROOT.'./data/ipdata/tinyipdata.dat';
12
            $fullipfile = DISCUZ_ROOT.'./data/ipdata/wry.dat';
13
            if(@file_exists($tinyipfile)) {
14
                $return = convertip_tiny($ip, $tinyipfile);
15
            } elseif(@file_exists($fullipfile)) {
16
                $return = convertip_full($ip, $fullipfile);
17
            }
18
        }
19
    }
20
    return $return;
21
}
 
从上面的函数定义我们看出,系统有个简版ip库 /data/ipdata/tinyipdata.dat,程序默认从这个库中解析ip地址,用户还可以自己上传拓展ip库,例如大家常用的纯真IP库;
使用方法举例:
1
[php] view plain copy
2
require_once libfile('function/misc');
3
$city=convertip($_G['clientip']);
4
echo $city;
 

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读