Chinaunix

标题: 有哪位朋友知道怎么更改HOSTID? [打印本页]

作者: myster    时间: 2005-02-25 23:45
标题: 有哪位朋友知道怎么更改HOSTID?
请相助,谢谢
作者: 寂寞烈火    时间: 2005-02-25 23:58
标题: 有哪位朋友知道怎么更改HOSTID?
改不了
作者: myster    时间: 2005-02-26 19:46
标题: 有哪位朋友知道怎么更改HOSTID?
Solaris可以更改,为什么Linux不可以更改?有点说不过去,从理论上来说,应该可以更改的。
作者: capasult    时间: 2005-02-26 19:49
标题: 有哪位朋友知道怎么更改HOSTID?
en, 的确能改,
man sethostid
作者: myster    时间: 2005-02-26 22:02
标题: 有哪位朋友知道怎么更改HOSTID?
查阅了一下资料,那只能在BSD类的系统下才可以吧
可以在Linux下实现吗?有没有具体操作过?
作者: capasult    时间: 2005-02-26 22:59
标题: 有哪位朋友知道怎么更改HOSTID?
目前还没有发现又这样的命令直接改hostid, 不过自己可以编程序通过系统调用
sethostid来改, 改完后hostid将存于文件/etc/hostid中.
一般安装后没有这个文件, 命令hostid从ip地址得到一个值, 例如
127.0.0.1 ==>;(转置) 0.127.1.0 也就是0x7f0100
作者: 采风    时间: 2005-02-27 09:05
标题: 有哪位朋友知道怎么更改HOSTID?
#echo 123 >; /etc/hostid
作者: myster    时间: 2005-02-27 22:47
标题: 有哪位朋友知道怎么更改HOSTID?
capasult 兄的建议还是不错,只可惜自己在这方面的知识有些不足,需要提高才能做到,努力一下吧。
采风兄的方法不错,但是如何得到自己想要的HostID呢?换算的方法是根据IP地址得出的吗?这样的话我更改IP地址后HostID又要改变?
作者: capasult    时间: 2005-02-27 23:19
标题: 有哪位朋友知道怎么更改HOSTID?
获取HOSTID的顺序是/etc/hostid, 如果没有, 再考虑localhost的IP地址.
/etc/hostid结构不是text, #echo 123 >; /etc/hostid的结果也不会使HOSTID变为123.
你可以用sethosted写个C的小程序设置HOSTID, 这是非常easy的.
作者: myster    时间: 2005-02-27 23:29
标题: 有哪位朋友知道怎么更改HOSTID?
capasult兄的提示太重要了,你说的hostid文件不是text格式,那么这个文件是用sethostid系统调用自动产生还是手工指定后产生?亦或是预先建立好这个文件?
依据你所说,同一个网段中的两台计算机如果HostID相同会不会引发冲突?
作者: JohnBull    时间: 2005-02-27 23:32
标题: 有哪位朋友知道怎么更改HOSTID?
man 2 sethostid
作者: capasult    时间: 2005-02-27 23:34
标题: 有哪位朋友知道怎么更改HOSTID?
sethostid调用成功, 如果没有就会生成. 你也可以删去, HOSTID就变成最初的 7f0100
作者: 好好先生    时间: 2005-02-28 08:17
标题: 有哪位朋友知道怎么更改HOSTID?
什么应用?如果是用lmgrd来调用license的东东的话,没有那么麻烦,改一下mac地址就可以了……
作者: wind521    时间: 2005-02-28 09:06
标题: 有哪位朋友知道怎么更改HOSTID?
在Linux上,hostid是和/etc/hosts文件有很大的关系的!

当有一些改动的时候,会有一点变化的
作者: myster    时间: 2005-02-28 09:54
标题: 有哪位朋友知道怎么更改HOSTID?
capasult 兄,可否将程序提供与我参考一下,本人对C不甚了解。
现在目的只是更改HostID,实现同一个网络中相同的HostID主机可以共同使用同一个应用程序的License,License生成器是根据HostID产生的。
Linux与Solaris系统的HostID生成方法有所区别,更改方法区别就更大了。
作者: capasult    时间: 2005-02-28 10:29
标题: 有哪位朋友知道怎么更改HOSTID?
/* host_id.c */

#include <stdio.h>;
#include <stdlib.h>;
#include <unistd.h>;
#include <errno.h>;
                                                                                                                                               
int main (int argc, char **argv)
{
    int verbose = 0;
                                                                                                                                               
    if(argc >; 2) {
        printf("Usage: host_id [HOSTID]\n";
        printf("Or host_id [-v]\n";
        exit(1);
    }
                                                                                                                                               
    if(argc == 2 && strcmp(argv[1], "-v" == 0) {
        verbose = 1;
        argc--;
        argv++;
    }
                                                                                                                                               
    if (argc==2) {
        if (sethostid(atoi(argv[1]))!=0) {
            perror("sethostid";
            exit(1);
        }
    } else if (argc==1) {
        unsigned long id = gethostid();
                                                                                                                                               
        if(id && verbose) {
            printf("Hostid is %lu (0x%lx)\n",id,id);
        } else if(id) {
            printf("0x%lx\n", id);
        } else {
            perror("gethostid";
        }
    }
    exit(0);
}
作者: myster    时间: 2005-02-28 12:59
标题: 有哪位朋友知道怎么更改HOSTID?
非常感谢capasult兄,我这就去调试一下
作者: myster    时间: 2005-02-28 13:29
标题: 有哪位朋友知道怎么更改HOSTID?
可否加一些注释,有些地方不大明白,或者有什么交流工具,咱们即时的交流一下?如有可以发Mail告诉我solocjh@163.com
作者: myster    时间: 2005-02-28 13:44
标题: 有哪位朋友知道怎么更改HOSTID?
OK!已经明白了,再次感谢capasult兄,希望以后能够多交流,更多的向你学习。

但是在使用当中发现一个问题就是,我输入的Hostid值应该是十进制的吧?
而在系统中敲打hostid输出的是16进制的值?
作者: myster    时间: 2005-02-28 14:17
标题: 有哪位朋友知道怎么更改HOSTID?
发现新的问题,如果在程序中实现更改Hostid,指定的参数值不能超过2147483647 ,不然所有的HostID值皆为7fffffff
而且如果/etc/hosts文件内容较多,那么host_id -v(以上程序加参数)所显示的值就越大,完全超过了2147483647这个值,如果指定大于214748364这个数的值就皆将HostID指定为7fffffff
作者: myster    时间: 2005-02-28 17:09
标题: 有哪位朋友知道怎么更改HOSTID?
经过不断的调试和测试,终于找到一个比较好的解决方案。
capasult兄,可以调整int为long吗?int的取值太小了。
我直接改程序是不行。
作者: capasult    时间: 2005-02-28 17:17
标题: 有哪位朋友知道怎么更改HOSTID?
在32位机器里, long和int大小是一样的, 也就是最大就是unsigned int的最大数
作者: myster    时间: 2005-02-28 17:23
标题: 有哪位朋友知道怎么更改HOSTID?
假设我们不用Sethostid系统调用产生/etc/hostid文件,通过系统本身的hosts文件产生的hostid值却很大,如果想在程序里扩大hostid的取值的话是不是要在sethostid函数里更改变量定义类型?
作者: redhat555    时间: 2006-10-16 15:44
标题: 急需修改linux下hostID的方法
capasult兄,本人急需在linux下修改HOstID的方法,但本人不会编程,不懂编译C,但能够执行文件,我想修改Redhat  As4下的HostID,请教教我,最好能提供我一个直接执行的文件。


非常感谢非常感谢


我的E-mail:sjw2725658@163.com


再次感谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2