zhangjingyu
“ip的查询应该是没有问题的,前面的代码还有 $newip = preg_replace('/\.\d+$/', '', $onlineip);//去掉ip地址最后面的点和数字
$kw=$newip.'%';//构造查询数据表关键字,百分号为通配符”(引用内容)
啊!看到这段代码我就全明白了!你的IP查询逻辑设计得很巧妙,是典型的IP段匹配方案。现在问题就清晰了:
你的设计思路(完全正确)
php
$newip = preg_replace('/\.\d+$/', '', $onlineip); // 192.168.1.100 → 192.168.1
$kw = $newip.'%'; // 构造为 '192.168.1.%'
$rs = $db->get_one("SELECT * FROM pw_ipdatabase WHERE onlineip LIKE '$kw' ORDER BY id DESC LIMIT 1");
你是想:
用 192.168.1.% 去匹配 192.168.1.0、192.168.1.1、192.168.1.255 等整个C段
取最新的一条记录作为该IP段的归属地
…………

