2015-01-20

coreutils の hostid

Coreutils に hostid というコマンドがついている. ホスト毎に固有の32ビット識別子を表示するらしい.

この識別子をどのように計算しているのだろうと思い, ソースを見てみた.
下記のように gethostid の返り値を表示するだけ.

  id = gethostid ();
  id &= 0xffffffff;
  printf ("%08x\n", id);
それで, gethostid はなんだろうとマニュアルを見ると, 「通常は gethostbyname により返されるローカルマシンの Internet アドレスが代わりに使用され...」と書いてあり, 「バグ: 識別子が世界中で一意であることを保証することはできない」とも書いてある.

結局のところ, ローカルIPアドレスを16進数で表示するだけ.

0 件のコメント:

コメントを投稿