読者です 読者をやめる 読者になる 読者になる

harry’s memorandum

おれおれメモ

LinuxのhostidってIPアドレスから生成されてたらしい

ruby linux

まったくもって無知でした。
LinuxIPアドレスを変更したらhostidが変わってしまったので、とあるアプリが動かなくなってしまいました。仕事の大先輩に「linuxのhostidはIPアドレスから生成されるから気をつけないと」と中国語なまりで教えて頂きました。

こういうことだそうです。SparcSolarisはハードウェア固定だったとおもったんだけどなぁ。。。
f:id:dharry:20100616013754p:image

require "socket"

class String
  def hex
    sprintf("%x", self.to_i)
  end
end

ip = IPSocket::getaddress(Socket::gethostname).split(".")
p ip
 #=> ["192", "168", "1", "101"]
puts [ip[1].hex, ip[0].hex, ip[3].hex, ip[2].hex].join
 #=> a8c0651