• 189阅读
  • 20回复

为你守候 温馨家园 即日起开始拥有自己的IP归属信息表 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看楼主 正序阅读 使用道具 绿 楼主  发表于: 2026-04-21 22:18:59 星期二
现在在帖子阅读页看到的ip归属信息(来自:)是通过某个函数从本地数据库文件ipdata.dat读取出来然后写进帖子数据表,最后在屏幕上呈现。然而,这个数据并不是太准确,这么多年了,一直耿耿于怀,一直想让这个数据更准确些。最简单有效的方法就是获取上面最新版的数据库文件,可网络上并不好找,官方已经不提供这种格式的文件了。

怎么办呢?有没有其它的方法?网络上有很多查询ip归属的网站,如果能把查询结果提取出来,写进帖子信息数据表里不就准确多了吗?于是,从去年12月6日开始了尝试:
之前是没有能力解决这个问题,唯一能想到的办法就是更新ipdata.dat文件,然而不好找。现在想到的办法则是抛弃这种传统的获取方式,改为通过论坛获取到的ip地址把对应的地理位置保存起来,然后发帖的时候直接把这个地址写进数据表。

经过不断的努力,终于能够获取到ip归属信息并能写进数据表,又进一步在后台添加了开关,可以选择使用网络获取还是本地。然而,后来mb_convert_encoding()这个把utf-8编码转换为gbk的关键函数不知道为什么不能用了。问deepseek,也是用这个函数转换,可问题是这个函数无效啊。

函数转换的方法一直没有最后的结果,只能另辟蹊径了。想到以前用一种特殊的字符组合表示中文汉字,就是“&#26597”这种形式的,到底叫什么,我也不了解。然后就想如何把中文转换成这样式儿的。经过不懈的努力,终于在本月14日找到了这个转码关键函数utf8ToNumericEntities()。虽然模样有点儿怪,但通用性应该很好,浏览器都支持。

这样,ip归属以一种特殊的符号形式写进帖子数据表中。只是,这种网络获取的方式,每个回帖都要访问外网,速度可能受到影响,更主要是担心外网可能拒绝来自本站的访问。既然前面已经成功了,我们可以把ip地址和归属的对应关系存储在一个数据表中,发帖时先本地查询,如果有则直接读取;没有记录的话,再访问外网并记录,下次同样的ip还是本地查询。这样,速度更快,也能让数据更准确。

经过最近几天的努力,构建数据表,修改添加自增字段id,成功写进多条测试数据,数据表完成!然后就是写查询数据表的语句,有符合条件的ip地址,直接从表中读取归属地;没有的话,访问外网获取并存储数据。

到此,全部设想实现。
Google了一下,这东西专业名称叫numeric character reference(NCR),直译就是数字字符引用。一个Numeric Character Reference编码是由一个与号(&)跟着一个井号(#),然后跟着这个字符的Unicode编码值,最后跟着一个分号组成的,就像上面的例子一样。
有了数字字符引用,就可以在网页中显示Unicode字符了,不用考虑html文件本身的编码,因为数字字符引用只用到ASCII字符集里的字符。所以,即使在gb2312编码的网页中,也可以用NCR显示埃及的象形文字了。

前两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 20楼 发表于: 2026-04-25 12:15:33 星期六  点亮(0)
手机看了下,第一感觉站不大的样子,而且似乎不能直接带入ip地址,直接看到归属地。再者看8楼的图片,似乎准确性也不怎么样。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 19楼 发表于: 2026-04-25 05:23:59 星期六  点亮(0)
好的,谢谢!有时间了我试试能不能获取到信息
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线BI4IVE

只看该作者 18楼 发表于: 2026-04-24 23:41:58 星期五  点亮(0)

  1. https://www.hao7188.com/
可以试试这个准确度还可以
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 17楼 发表于: 2026-04-24 19:33:33 星期五  点亮(0)
$getUrl = 'https://ipchaxun.com/'.$onlineip;
这个网址,$data没有输出;

$getUrl = 'https://www.ip138.com/iplookup.asp?ip='.$onlineip.'&action=2';
ip138的$data输出乱码。即使正常,结果也不准确,比如:“山东省聊城市东昌府区移动”。我在莘县,怎么就跑聊城市区去了。

所以,现在调试通过的ip.cnchinaz.com,有两个备选方案,也算不错了。别的网站就不折腾了,数据不准,折腾这些何用?还不如不用。

最近5点就得起来吃饭,然后去加班;晚上调试这个又弄到很晚,导致昨晚就是在迷迷糊糊中完成的更新。今天上班也困,现在也困。所以,吃饭睡觉吧。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 16楼 发表于: 2026-04-23 23:22:19 星期四  点亮(0)
重新备份下载查看,确认数据表已经更新。
#
# phpwind bakfile
# version:8.7
# time: 2026-04-23 23:19
# tablepre: pw_
#
# --------------------------------------------------------


INSERT INTO `pw_ipdatabase`  VALUES('1','2','zhangjingyu','5419','1776785411','2026-04-21 23:30:11','112.37.131.148','中国山东聊城莘县移动');
INSERT INTO `pw_ipdatabase`  VALUES('2','1277','未来首先','5420','1776821987','2026-04-22 09:39:47','112.32.126.221','中国安徽合肥蜀山移动');
INSERT INTO `pw_ipdatabase`  VALUES('3','1385','BI4IVE','5419','1776828244','2026-04-22 11:24:04','162.248.77.169','荷兰北荷兰阿姆斯特丹');
INSERT INTO `pw_ipdatabase`  VALUES('4','2','zhangjingyu','5419','1776831133','2026-04-22 12:12:13','112.38.33.245','中国山东聊城莘县移动');
INSERT INTO `pw_ipdatabase`  VALUES('5','1385','BI4IVE','5419','1776921110','2026-04-23 13:11:50','112.224.223.106','中国山东济南联通');
INSERT INTO `pw_ipdatabase`  VALUES('6','1385','BI4IVE','5419','1776921172','2026-04-23 13:12:52','45.62.103.144','美国加利福尼亚费利蒙');
INSERT INTO `pw_ipdatabase`  VALUES('7','2','zhangjingyu','5419','1776953112','2026-04-23 22:05:12','112.8.173.69','中国山东聊城莘县移动');
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 15楼 发表于: 2026-04-23 23:15:13 星期四  点亮(0)
单独备份我们的ip归属信息表,恢复到本地,然后在数据库管理中删除多余的“</span”。目前共7条,纪念下。继续备份单表,上传到家园论坛,恢复数据,完成数据更新。

尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 14楼 发表于: 2026-04-23 22:42:37 星期四  点亮(0)
回复6楼 zhangjingyu 的帖子
zhangjingyu “中国山东聊城莘县移动”在数据表中是“&#+5位数字”形式的,楼上直接粘贴的,所以浏览器以中文显示了。但后面还有个“</span”,为什么在帖子“来自:”后面没显示出来呢?可能在处理字符串的代码中没有替换干净。不管怎么说,终于正常了。有时间了再处理细节问题。太晚 .. (2026-04-21 23:41)
现在的归属查询来自ip.cn,后面多了个“</span”;
今晚本地测试换成chinaz.com,结果后面多了个“</div”。

是不是很特别,挺别致的?为什么会有多余字符出现?真的想不明白,但绝对不可能是从网页截取的,因为调试时从来没有看到过。不管怎样,只要有规律就好办,继续处理下再写进ip归属信息表就可以了。

123456中国山东聊城莘县移动
20013;22269;23665;19996;32842;22478;33688;21439;31227;21160;
中国山东聊城莘县移动
来自ip.cn的数据UTF-8

123456中国山东聊城
中国山东聊城
20013;22269;23665;19996;32842;22478;
来自chinaz.com的数据

$zhuanhuan=utf8ToNumericEntities($str5);//注意检查数据表中转换后的字符串后面是否有多余字符
$shanchu=explode('<',$zhuanhuan);
$guishudi=$shanchu[0];//去掉多余的</div,</span
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 13楼 发表于: 2026-04-23 17:43:44 星期四  点亮(0)
有的,在最上面,用户名的右边。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线BI4IVE

只看该作者 12楼 发表于: 2026-04-23 13:12:53 星期四  点亮(0)
手机版本好像没法编辑呢

——本帖通过回复.
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!