java怎么获取请求的ip

java怎么获取请求的ip,第1张

java获取外网ip地址方法:

public class Main {

public static void main(String[] args) throws SocketException {

Systemoutprintln(MaingetRealIp());

}

public static String getRealIp() throws SocketException {

String localip = null;// 本地IP,如果没有配置外网IP则返回它

String netip = null;// 外网IP

Enumeration<NetworkInterface> netInterfaces =

NetworkInterfacegetNetworkInterfaces();

InetAddress ip = null;

boolean finded = false;// 是否找到外网IP

while (netInterfaceshasMoreElements() && !finded) {

NetworkInterface ni = netInterfacesnextElement();

Enumeration<InetAddress> address = nigetInetAddresses();

while (addresshasMoreElements()) {

ip = addressnextElement();

if (!ipisSiteLocalAddress()

&& !ipisLoopbackAddress()

&& ipgetHostAddress()indexOf(":") == -1) {// 外网IP

netip = ipgetHostAddress();

finded = true;

break;

} else if (ipisSiteLocalAddress()

&& !ipisLoopbackAddress()

&& ipgetHostAddress()indexOf(":") == -1) {// 内网IP

localip = ipgetHostAddress();

}

}

}

if (netip != null && !""equals(netip)) {

return netip;

} else {

return localip;

}

}

}

在JSP里,获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。

如果使用了反向代理软件,将>

public static void main(String[] args) { try { // 获取计算机名 String name = InetAddressgetLocalHost()getHostName(); // 获取IP地址 String ip = InetAddressgetLocalHost()getHostAddress(); Systemoutprintln("计算机名:"+name); Systemoutprintln("IP地址:"+ip); } catch (UnknownHostException e) { Systemoutprintln("异常:" + e); eprintStackTrace(); } }

是否可以解决您的问题?

public

static

void

main(string[]

args)

{

try

{

//

获取计算机名

string

name

=

inetaddressgetlocalhost()gethostname();

//

获取ip地址

string

ip

=

inetaddressgetlocalhost()gethostaddress();

systemoutprintln("计算机名:"+name);

systemoutprintln("ip地址:"+ip);

}

catch

(unknownhostexception

e)

{

systemoutprintln("异常:"

+

e);

eprintstacktrace();

}

}

是否可以解决您的问题?

只有别人与你建立连接你才有可能知道。

PING 的机制不是很了解,

QQ的话可以,可以通过建立的UDP连接排查一下。

网页的信息都是通过网站发送的,这个很难得到。

现一个,java程序为了平台的通用性,对底层的 *** 作很多都做不到。一般都是用C或c++写好dll

然后java来调用。

象你说的那样,也许有人会写这样的工具吧,但很少会流传出来,你这基本就是一个简易的防火墙了,

真想实现,得研究一下网络的构成一些东西,只凭编程语言还不够。

本机地址获取为了IPV6的IP,这现象只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),其实作怪的是hosts文件,在windows上应该是C:\Windows\system32\drivers\etc\ hosts这个文件),只需要注释掉文件中的 # ::1 localhost 这一行即可解决问题。

在JSP里,获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 requestgetRemoteAddr()方法获取的IP地址是:127001或 1921681110,而并不是客户端的真实IP。

requestgetRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。

于是可得出获得客户端真实IP地址的方法一:

public String getRemortIP(>

以上就是关于java怎么获取请求的ip全部的内容,包括:java怎么获取请求的ip、java中怎么获取客户端的真实的IP-CSDN论坛、JAVA获取IP地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存