user-pic

[讨论]Leobbs 論壇時間與時間伺服器時間調整技術

Vote 0 Votes

簡言:
  大多用戶的網頁主機都為虛擬伺服器,在調整時間方面往往需要要求網空公司,大多數的網空不會去調整正確時間,而主機亦沒有時間定時較正功能,而此想出直接使用論壇程序與時間伺服器修正時間。

概念代碼如下


#!/usr/bin/perl
print "Content-type: text/html\n\n";
use Socket;
socket (S, 2, 1, 0);
select (S);
$| = 1;
select (STDOUT);
connect (S, pack('S n C4 x8', 2, 37, unpack ('C4', ((gethostbyname ('stdtime.gov.hk'))Β])Ύ])));
$gmt = (hex (unpack ('H*', <S>)) - 2208988800);
$time = time;
close(S);
undef $|;
print $gmt - $time . $/; #相差時間
print $time . $/; #主機時間
print $gmt . $/; #國際時間


重點如下:
  1:時間校正由管理員手動或設置定時執行。
  2:所相差時間寫入 boardinfo.cgi,於bbs.lib.pl 寫一個通用的時間獲取涵數 並減去相差秒數 及傳回較正後的時間,且把論壇所有的時間涵數改為調用bbs.lib.pl的那個通用的時間獲取涵數。

5 Replies

| Add a Reply
  • 作为后台插件可行:)

  • 只是這功能是需要修改所有cgi檔案的時間部分...
    不能作單一外掛...

  • 下面引用由Anthony在 2004/10/24 08:35pm 发表的内容:
    只是這功能是需要修改所有cgi檔案的時間部分...
    不能作單一外掛...

    如果写入 boardinfo.cgi,就可做外挂使用:)
    当然主要程序可做小的休正。。

    PS:我对use Socket; 头大ing。。巨耗费资源:)
  • 下面引用由路杨在 2004/10/24 08:57pm 发表的内容:
    如果写入 boardinfo.cgi,就可做外挂使用:)
    当然主要程序可做小的休正。。
    PS:我对use Socket; 头大ing。。巨耗费资源:)

    Perl 的Socket 調用,可與 C 的一樣喔
    IO::Socket 的指向更頭痛..
  • 呵呵,我是看不懂拉,我记得Anthony说过使用和时间服务器校对来达到论坛时间的正确性,现在比较简单点的就是,将服务器时间与时间服务器定期或手动做校对后,记录相差的秒数,论坛调用时间时,减去相差时间,由于时间在短期内不会变动太大,一般一个星期或一个月校对一次就可以。

    呵呵,和Anthony的想法一样。

Add a Reply

Forum Groups

Good Perl Books

Perl 學習手札

作者:簡信昌

Perl 學習手札 , 一本优秀的中文Perl在线学习资料。

Perl 程序讨论区

12 50

Last Topic: [注意]本区文章归档区 by 路杨 on Oct 16, 2006

事物处理及其他

113 1410

Last Topic: 踩个脚印 by 眼睛oo on Dec 4, 2010

测试私密区

测试私密区

18 88

Notice: 用于测试程序或者不可告人之秘密。不要问我要密码哦。。[此为原LB_ES论坛系统保留项,只限原有权限朋友进入,不再接受注册]

OpenID accepted here Learn more about OpenID