使用 InetAddress 在 heroku 上查找 DNS 主机名

Using InetAddress to find DNS host name on heroku

我正在尝试获取我 运行 在 Heroku 中使用的机器的主机名。我想要得到的是这样的:https://gentle-hollows-7643-243.com

我现在用的是InetAddressclass里面的getCannoncialHostName。这给了我这样的值:

String hostName = java.net.InetAddress.getLocalHost.getCannonicalHostName
//returns the following
//be24dfaf-671d-4c37-8468-e1826ea26507.prvt.dyno.rt.heroku.com

这不是我期望收到的,这是 https://gentle-hollows-7643-243.com

我是不是误解了 getCannonicalHostName 的意图,还是因为 Heroku 架构而无法正常工作?

请看这个

getCanonicalName() 方法将 return 完全限定域名

Host Name Vs Canonical Host Name

我不认为你能得到你想要的。 Heroku dyno 在将流量路由到它的代理后面运行。所以进程的实际主机名不是您在浏览器中使用的主机名。另一种可能的解决方案是将 APP_NAME 之类的配置变量设置为 "gentle-hollows-7643-243",然后在您的应用程序中使用它,例如 System.getenv("APP_NAME");