Linux 版 (精华区)

发信人: hbt (书生21), 信区: Linux
标  题: 环顾四方的IP问题
发信站: 紫 丁 香 (Wed Dec  9 11:28:49 1998), 转信

发信人: Leeward (1% completed★蝗虫街), 信区: BBSMan_Dev 
标 题: Re: 终于开版了!高兴!好多问题都给憋坏了.:) 
发信站: BBS 水木清华站 (Wed Dec  9 02:59:35 1998) 
 
【 在 hbt (书生21) 的大作中提到: 】 
:  先提一个问题吧: 
:       redhat5.1上装firebird2.66,在环顾四方里看看大家,都是来自于我的机器名, 
:  是我的设置有问题还是版本有问题? 

多半是你的BBS或者Linux的设定问题。 
而且多半是系统的 utmp 文件没有和你的 BBS 的 bbsrf.c 正确相连。 
当读取用户 IP/域名失败时,bbsrf.c 就使用你的机器名来替代。 
具体参见 bbsrf.c 的 main 函数,里面大致有这么一段: 
        if (whee) { 
            char ttybuf[ 16 ]; 
            char *tp; 
 
            RF_DEBUG("Before ttyname (whee)...."); 
            tp = ttyname( 0 ); 
            strcpy( ttybuf,(tp==NULL) ? "/dev/ttyp0" : tp ); 
 
            if (whee->ut_host[0]) strncpy(hid, whee->ut_host, 16) ; 
            else 
#ifdef SYSV 
            { 
                struct utsname name; 
                if (uname( &name ) >= 0) strcpy(hid, name.nodename); 
                else strcpy(hid, "localhost"); 
            } 
#else 
               gethostname(hid, 16); 
#endif 
 
            hid[16] = '\0' ; 
 
你的代码是走到了 gethostname(hid, 16); 这一句了吧。 
 
这个问题我以前也遇到过,不改动代码的话,我记得我原来是在 RedHat 下这么做:  
 
ln -sf /var/run/utmp /etc/utmp 
 
你可以试试。ln 之后不妨 reboot 一下机器。 
 
PS: 在 ln 之前,建议先看一下以及备份原来的 /etc/utmp 。 
-- 
 
--
        书 中 自 有 黄 金 屋 , 
                    网 络 更 胜 千 本 书 .
         

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: hs8.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.237毫秒