• 4673阅读
  • 144回复

关于帖子阅读页显示的ip地址来源 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 49楼 发表于: 2025-04-02 10:44:07 星期三  点亮(0)
用企业邮箱写邮件:
首先,非常感谢贵司提供的免费版ip地址库!现在有一个问题请教:以前dat格式的数据库文件,可以用在pw论坛中显示ip地址来源。今天测试把cz88_public_v4.czdb重命名为dat格式,但无法显示。不知道有没有什么方法可以转换?希望看到后,能抽空儿回复,非常感谢!

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

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

只看该作者 50楼 发表于: 2025-12-06 10:25:50 星期六  点亮(0)
这个ip地址来源的准确性问题也算是我的一个心结吧,就因为它不够准确。这个ip地址与来源(地理位置)的对应关系,是由论坛程序通过读取本地数据库文件得出的——最初的数据库文件是很多很多的文本文档,后来经过修改程序文件读取的是一个dat格式的数据库文件:ipdata.dat(20200725版本)。然而,这个文件里面的数据也并不是特别准确。想过更新这个文件,然而不太好找。

今年4月份的时候,注册了纯真论坛,获得授权下载到纯真ip地址数据库。然而它是.czdb格式的,并不能直接或者重命名使用,写了邮件想转换下也是无果。那今天就删除为了授权而添加的“IP地址位置数据由纯真CZ88提供支持”吧,我自己想办法解决这个问题,就这两天休班的时候。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 51楼 发表于: 2025-12-06 11:00:11 星期六  点亮(0)
之前是没有能力解决这个问题,唯一能想到的办法就是更新ipdata.dat文件,然而不好找。现在想到的办法则是抛弃这种传统的获取方式,改为通过论坛获取到的ip地址把对应的地理位置保存起来,然后发帖的时候直接把这个地址写进数据表。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 52楼 发表于: 2025-12-06 11:03:20 星期六  点亮(0)

在论坛页头的用户名弹出菜单里可以看到登录ip,那我们就想办法通过它把地理位置获取并保存起来。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 53楼 发表于: 2025-12-06 11:08:05 星期六  点亮(0)
http://www.vtu425.com/sort.php?action=online
在统计信息的在线统计里也可以看到ip地址,那就从这里入手吧。因为它更新得还算及时。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 54楼 发表于: 2025-12-06 12:12:30 星期六  点亮(0)
看sort.php这个文件,似乎想要把ip地址对应的地理位置保存起来并调用不太容易,不过也先看看吧。
$onlinedb = openfile(D_P.'data/bbscache/online.php');
这里读取了缓存文件online.php。
  1.             } else {
  2.                 $thread['username']    = $thread[0];
  3.                 $thread['uid']        = $thread[8];
  4.                 //$thread['ip']        = $thread[2];
  5.                 //可以查看在线统计ip地址的用户组21:16 2019-1-4
  6.                 //if(in_array($groupid,array(3,4,5))){$thread['ip']=$thread[2];}else {$thread['ip']="-";}
  7.                 $thread['ip']        = in_array($groupid,array(3,4,5)) ? $thread[2] : "-";
  8.                 //$thread['ip']        = S::inArray($windid,$manager) ? $thread[2] : "-";
  9.                 $thread['group']    = $ltitle[$thread[5]];
  10.                 $thread['action']    = $thread[6];
  11.                 $thread['lasttime']    = $thread[7];
  12.                 $forum[$thread[3]]['name'] && $thread['forum'] = "<a href='thread.php?fid=$thread[3]'>".$forum[$thread[3]]['name']."</a>";
  13.                 $thread['atc'] = $thread[4];
  14.             }
  15.             $threaddb[] = $thread;
  16.         }
  17.     }
  18.     require_once PrintEot('sort');footer();
  19. } elseif ($action == 'member') {
这里通过online.php得到了一些信息,简单对应下,可能不太准确。
0=username
1=timestamp
2=ip
3=fid
4=tid
5=groupid
6=action
7=lasttime
8=uid

online.php文件内容简单如下:
zhangjingyu    1764990603    112.37.131.176    3    3779    3    论坛管理◇家园服务    12-06 11:10    2
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 55楼 发表于: 2025-12-06 12:22:03 星期六  点亮(0)
通过搜索包含“online.php”的文件,在smallcard.php文件里有一段代码值得研究也,和遍历有关。
  1. /**
  2. * 从文件缓存获取用户正在看
  3. *
  4. * @param int $username 用户名
  5. * @return array
  6. */
  7. function getViewingByFile($username) {
  8.     $onlinedb = is_file(D_P.'data/bbscache/online.php') ? openfile(D_P.'data/bbscache/online.php') : array();
  9.     if (!$onlinedb) return array();
  10.     foreach ($onlinedb as $v) {
  11.         if (!trim($v)) continue;
  12.         $online = explode("\t",$v);
  13.         if ($online[0] == $username) break;
  14.     }
  15.     return array(
  16.         'tid'  => ( isset($online[4]) && $online[4] ) ? $online[4] : '',
  17.         'fid'  => ( isset($online[3]) && $online[3] ) ? $online[3] : ''
  18.     );
  19. }
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 56楼 发表于: 2025-12-06 12:37:39 星期六  点亮(0)
通过php文件输出表格,这个是我一直想实现的,也许将来真的可以做到!
  1. <?php
  2. !function_exists('readover') && exit('Forbidden');
  3. $index_whosonline = '<div><table align="center" cellspacing="0" cellpadding="0" width="100%"><tr>';
  4. …………
  5. $index_whosonline .= '</tr></table></div>';
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 57楼 发表于: 2025-12-06 13:07:27 星期六  点亮(0)
看了半天,应该是require/userglobal.php文件里面的代码更新online.php缓存文件。
  1. function addonlinefile($offset,$uid) {
  2.     global $windid,$groupid,$lastvisit,$timestamp,$onlineip,$db_onlinetime,$fid,$tid,$wind_in,$tdtime, $db_olsize,$db_today;
  3.     if (strlen($fid)>4) $fidwt = ''; else $fidwt = $fid;
  4.     if (strlen($tid)>7) $tidwt = ''; else $tidwt = $tid;
  5.     $wherebbsyou = getuseraction($fid,$wind_in);
  6.     $acttime = get_date($timestamp,'m-d H:i');
  7.     $D_name = "data/bbscache/online.php";
  8.     if (!file_exists(D_P.$D_name)) {
  9.         pwCache::writeover(D_P.$D_name,str_pad("<?php die;?>",96)."\n");
  10.     }
  11.     if (GetCookie('hideid') != 1) {
  12.         $newonline = "$windid\t$timestamp\t$onlineip\t$fidwt\t$tidwt\t$groupid\t$wherebbsyou\t$acttime\t$uid\t";
最后面一行就是写入缓存文件的文件内容,可以在这里加入ip地址对应的地理位置。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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

只看该作者 58楼 发表于: 2025-12-06 21:10:21 星期六  点亮(0)
本来以为自己能找到解决的办法,但目前只能算是有思路,还没有找到可以参考的代码片段或者合适的函数、方法等,以后当然还会继续努力,争取到最后的成功。

话说回来,下午在搜索的时候也找到并下载了新版的dat格式的数据库文件,还没有测试。用记事本打开文件,看到的内容当然是乱码,看格式,省市县之间还是现在这样用短横线分隔的。说实话,这样的我不太喜欢。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

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