加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将Unix hostid转换为Java

发布时间:2020-12-15 22:40:03 所属栏目:安全 来源:网络整理
导读:如何通过某种调用将unix hostid变为 Java? http://linux.about.com/library/cmd/blcmdl1_hostid.htm 解决方法 如果先前调用sethostid(long int id)设置它,它将驻留在HOSTIDFILE中,通常是/ etc / hostid. 如果不存在,则获取计算机的主机名.您拉出主机名的地
如何通过某种调用将unix hostid变为 Java?

http://linux.about.com/library/cmd/blcmdl1_hostid.htm

解决方法

如果先前调用sethostid(long int id)设置它,它将驻留在HOSTIDFILE中,通常是/ etc / hostid.

如果不存在,则获取计算机的主机名.您拉出主机名的地址,如果是IPv4,则是从点分十进制到二进制格式化的IPv4地址,其中前16位和后16位交换.

InetAddress addr = InetAddress.getLocalHost();
byte[] ipaddr = addr.getAddress();
if (ipaddr.length == 4) {
  int hostid = 0 | ipaddr[1] << 24 | ipaddr[0] << 16 | ipaddr[3] << 8 | ipaddr[2];
  StringBuilder sb = new StringBuilder();
  Formatter formatter = new Formatter(sb,Locale.US);
  formatter.format("%08x",hostid);
  System.out.println(sb.toString());
} else {
  throw new Exception("hostid for IPv6 addresses not implemented yet");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读