
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地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)