
在JSP里,获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,用requestgetRemoteAddr()方法获取的IP地址是:127001 或 1921681110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的>
第一种:获取本机的IP
Enumeration<NetworkInterface>
netInterfaces
=
null;
try
{
netInterfaces
=
NetworkInterfacegetNetworkInterfaces();
while
(netInterfaceshasMoreElements())
{
NetworkInterface
ni
=
netInterfacesnextElement();
Systemoutprintln("DisplayName:"
+
nigetDisplayName());
Systemoutprintln("Name:"
+
nigetName());
Enumeration<InetAddress>
ips
=
nigetInetAddresses();
while
(ipshasMoreElements())
{
Systemoutprintln("IP:"
+
ipsnextElement()getHostAddress());
ipTemp=
nigetInetAddresses()nextElement()getHostAddress();
if(ipTemp!="127001"
&&
!"127001"equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception
ee)
{
eeprintStackTrace();
}
第二种:也是本机的:
InetAddress
addr
=
InetAddressgetLocalHost();
ip=addrgetHostAddress()toString();//获得本机IP
import javanet;
public class Test6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
InetAddress ia=null;
try {
ia=iagetLocalHost();
String localname=iagetHostName();
String localip=iagetHostAddress();
Systemoutprintln("本机名称是:"+ localname);
Systemoutprintln("本机的ip是 :"+localip);
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
以上就是关于怎样通过Java程序 获取本机IP地址..试了几种方法都不行 获取的都是192.168.*.*这种.想得到网络IP那种,求全部的内容,包括:怎样通过Java程序 获取本机IP地址..试了几种方法都不行 获取的都是192.168.*.*这种.想得到网络IP那种,求、java怎么获取本机的IP地址和MAC、java如何获取当前登录ip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)