所以我在使用InetAddress.getLocalHost.getHostAddress
來獲取給定機器的外部IP地址時遇到問題。試圖讓InetAddress.getLocalHost.getHostAddress(Java/Scala)返回外部IP
我實際上是在Scala中這樣做 - 在某種意義上Akka Remote Actors的配置文件默認使用InetAddress.getLocalHost.getHostAddress
來獲取機器的IP地址,這正是我想要的,因爲我將在多臺機器上部署這些actor 。但是,它似乎正在返回127.0.0.1
而不是我想要的外部IP地址(因爲遠程角色需要在網絡中來回通信)。
的問題是,我不能使用任何的我在谷歌找到規避這種方法,因爲它們似乎都涉及調整代碼本身,而在這裏我真的沒有任何代碼進行調整, DSL僅自動使用InetAddress.getLocalHost.getHostAddress
。
我讀過關於從谷歌搜索,您可以通過編輯您的主機文件或東西繞過這個線程數?我該怎麼做呢?
謝謝! -kstruct
我不認爲我可以這樣做 - 沒有代碼可以修改。這只是Akka Remote Actor配置文件的工作方式 - 如果沒有指定主機名,它使用'InetAddress.getLocalHost.getHostAddress',我從來沒有使用過它。 http://doc.akka.io/docs/akka/2.0/general/configuration.html – adelbertc 2012-04-18 18:28:43
@kstruct。你是否與安全經理一起運行? getLocalHost的文檔說,如果您沒有正確的權限,該方法始終會返回回送地址。 – 2012-04-18 18:54:23
嗯..我現在對JVM不太熟悉,你能向我解釋一下如何確定我是否在使用這個「安全管理員」嗎?如果這是相關的,我肯定沒有遠程機器的root訪問權限。 – adelbertc 2012-04-18 19:59:51