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