怎样通过Java程序 获取本机IP地址..试了几种方法都不行 获取的都是192.168.*.*这种.想得到网络IP那种,求

怎样通过Java程序 获取本机IP地址..试了几种方法都不行 获取的都是192.168.*.*这种.想得到网络IP那种,求,第1张

在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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9856302.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存