gpt4 book ai didi

java - 从请求中获取主机名

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:34 24 4
gpt4 key购买 nike

我在内网上的 Windows Server 2008 上运行我的应用程序。

要登录,应用程序会尝试从请求中获取主机名以验证用户。但是,有时应用程序会返回 IP 地址而不是名称,一段时间后,应用程序无需执行任何操作即可解析名称并且一切正常...

这是我用来获取主机名的代码:

InetAddress inaHost = InetAddress.getByName(request.getRemoteAddr());
String hostname = inaHost.getHostName();
System.out.println("[[ Hostname = " + hostname + " ]]");

这是因为 Intranet 配置(DNS!?),还是我的代码有问题,或者是巫术之类的?

最佳答案

先试试

System.out.println("Host = " + request.getServerName());
System.out.println("Port = " + request.getServerPort());

如果不工作

hostName == null;
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
{
while (interfaces.hasMoreElements()) {
NetworkInterface nic = interfaces.nextElement();
Enumeration<InetAddress> addresses = nic.getInetAddresses();
while (hostName == null && addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress()) {
hostName = address.getHostName();
}
}
}
}

关于java - 从请求中获取主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com