JAVA怎么获取IP地址

Python08

JAVA怎么获取IP地址,第1张

这个是获取不到的,因为有代理、端口映射等等转发情况的存在。为什么不保存相对路径/域名/或者在服务器上某个配置文件中配置域名/数据库中一个表/数据库中某个字段保存当前服务器的ip地址呢?

第一种:获取本机的IP

Enumeration<NetworkInterface>

netInterfaces

=

null

try

{

netInterfaces

=

NetworkInterface.getNetworkInterfaces()

while

(netInterfaces.hasMoreElements())

{

NetworkInterface

ni

=

netInterfaces.nextElement()

System.out.println("DisplayName:"

+

ni.getDisplayName())

System.out.println("Name:"

+

ni.getName())

Enumeration<InetAddress>

ips

=

ni.getInetAddresses()

while

(ips.hasMoreElements())

{

System.out.println("IP:"

+

ips.nextElement().getHostAddress())

ipTemp=

ni.getInetAddresses().nextElement().getHostAddress()

if(ipTemp!="127.0.0.1"

&&

!"127.0.0.1".equals(ipTemp))

{

ip=ipTemp

}

}

}

}catch(Exception

ee)

{

ee.printStackTrace()

}

第二种:也是本机的:

InetAddress

addr

=

InetAddress.getLocalHost()

ip=addr.getHostAddress().toString()//获得本机IP

1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()

2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址

3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器