Java获取个网站IP
JAVA如何获取客户端IP地址和MAC地址

JAVA如何获取客户端IP地址和MAC地址本⽂介绍了JAVA如何获取客户端IP地址和MAC地址,分享给⼤家,具体如下:1.获取客户端IP地址public String getIp(HttpServletRequest request) throws Exception {String ip = request.getHeader("X-Forwarded-For");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {int index = ip.indexOf(",");if (index != -1) {return ip.substring(0, index);} else {return ip;}}}ip = request.getHeader("X-Real-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}return request.getRemoteAddr();}为什么不直接使⽤request.getRemoteAddr();⽽要在之前判断两个请求头"X-Forwarded-For"和"X-Real-IP"X-Forwarded-For: client1, proxy1, proxy2, proxy3其中的值通过⼀个逗号+空格把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到⼀个请求,就把请求来源IP地址添加到右边。
所有我们只取第⼀个IP地址X-Real-IP,⼀般只记录真实发出请求的客户端IP解决⽤localhost访问ip为0:0:0:0:0:0:0:1的问题public String getIp(HttpServletRequest request) throws Exception {String ip = request.getHeader("X-Forwarded-For");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {int index = ip.indexOf(",");if (index != -1) {return ip.substring(0, index);} else {return ip;}}}ip = request.getHeader("X-Real-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getHeader("Proxy-Client-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getHeader("WL-Proxy-Client-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getRemoteAddr();return ip.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;}2.获取客户端MAC地址UdpGetClientMacAddr umac = new UdpGetClientMacAddr(sip);String smac = umac.GetRemoteMacAddr();添加⼀个获取MAC的时间限制final UdpGetClientMacAddr umac = new UdpGetClientMacAddr(sip);//---长时间获取不到MAC地址则放弃ExecutorService exec = Executors.newFixedThreadPool(1);Callable<String> call = new Callable<String>() {public String call() throws Exception {return umac.GetRemoteMacAddr();}};try {Future<String> future = exec.submit(call);String smac = future.get(1000 * 1, LISECONDS);loginMonitor.setMacAddress(smac);} catch (TimeoutException ex) {loginMonitor.setMacAddress("获取失败");("获取MAC地址超时");}// 关闭线程池exec.shutdown();//---需要先获取IP地址作为参数构造⼀个UdpGetClientMacAddrUdpGetClientMacAddr.javapackage monsys.security.controller;import java.io.IOException;import .DatagramPacket;import .DatagramSocket;import .InetAddress;/*** 主机A向主机B发送“UDP-NetBIOS-NS”询问包,即向主机B的137端⼝,发Query包来询问主机B的NetBIOS Names信息。
Java利用Request请求获取IP地址的方法详解

Java利⽤Request请求获取IP地址的⽅法详解前⾔最近在项⽬中遇到⼀个需求,是需要将不同省份的⽤户,展⽰不同内容,通过查找相关的资料,发现可以通过Request请求获取IP地址,下⾯我们先来贴代码, 如果你要在⽣产环境使⽤就直接拿去⽤吧,我这边已经上线了。
⽰例代码public class IpAdrressUtil {/*** 获取Ip地址* @param request* @return*/private static String getIpAdrress(HttpServletRequest request) {String Xip = request.getHeader("X-Real-IP");String XFor = request.getHeader("X-Forwarded-For");if(StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)){//多次反向代理后会有多个ip值,第⼀个ip才是真实ipint index = XFor.indexOf(",");if(index != -1){return XFor.substring(0,index);}else{return XFor;}}XFor = Xip;if(StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)){return XFor;}if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {XFor = request.getHeader("Proxy-Client-IP");}if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {XFor = request.getHeader("WL-Proxy-Client-IP");}if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {XFor = request.getHeader("HTTP_CLIENT_IP");}if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {XFor = request.getHeader("HTTP_X_FORWARDED_FOR");}if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {XFor = request.getRemoteAddr();}return XFor;}}代码详解⾸先,我们获取 X-Forwarded-For 中第0位的IP地址,它就是在HTTP扩展协议中能表⽰真实的客户端IP。
JAVA获得域名IP地址的方法

JAVA获得域名 IP地址的方法
本文实例讲述了JAVA获得域名IP地址的方法。分享给大家供大家参考。具体如下:
import .InetAddress; import .UnknownHostException; public class TestInetAddress { InetAddress myIpAddress = null; InetAddress[] myServer = null; public static void main(String args[]) { TestInetAddress address = new TestInetAddress(); System.out.println("Your host IP is: " + address.getLocalhostIP()); String domain = ; System.out.println("The server domain name is: " + domain); InetAddress[] array = address.getServerIP(domain); int count=0; for(int i=1; i<array.length; i++){ System.out.println("ip "+ i +" "+ address.getServerIP(domain)[i-1]); count++; } System.out.println("IP address total: "+count); } /** * 获得 localhost 的IP地址 * @return */ public InetAddress getLocalhostIP() { try { myIpAddress = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } return (myIpAddress); } /** * 获得某域名的IP地址 * @param domain 域名 * @return */ public InetAddress[] getServerIP(String domain) { try { myServer = InetAddress.getAllByName(domain); } catch (UnknownHostException e) { e.printStackTrace(); } return (myServer); } }
java如何获取本机IP地址

java如何获取本机IP地址本⽂实例为⼤家分享了java实现获取本机IP地址的具体代码,供⼤家参考,具体内容如下原因:同⼀台机⼦上开着两个web⼯程,现在有需求需要保证两个项⽬之间交互的安全问题。
因为有个旧的项⽬,所以尽量不做改动。
只能在新项⽬中做改动。
处理办法:获取本地的IP地址,有请求进来时查看请求的来源,只有来源是本地IP的才予以通过。
代码如下:/*** 任务调度调⽤拦截器*/public class TaskControlInterceptor implements Interceptor {//存放本机IP地址列表(包括ipv4和ipv6)private static Set<String> localHostList = new HashSet<>();@Overridepublic void intercept(Invocation inv) {Controller controller = inv.getController();HttpServletRequest request = controller.getRequest();/*获取本机的IP地址列表请求的时候判断来源IP地址是否在该列表中,如果不在的话则不予通过*/if (localHostList.size() == 0) {localHostList = getIpAddress();}if (StringUtils.isNotBlank(request.getRemoteAddr())) {if (!localHostList.contains(request.getRemoteAddr())) {Result result = new Result(new Error("450","⾮法的请求,请求来源IP地址不是本机"));controller.getResponse().setStatus(450);controller.renderJson(result);return;}} else {Result result = new Result(new Error("450","⾮法的请求,请求来源IP地址为空"));controller.getResponse().setStatus(450);controller.renderJson(result);return;}inv.invoke();}/*** 获取本机的IP地址(包括ipv4和ipv6)* <br>包含回环地址127.0.0.1和0:0:0:0:0:0:0:1*/private static Set<String> getIpAddress() {Set<String> ipList = new HashSet<>();try {Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();InetAddress ip = null;while (allNetInterfaces.hasMoreElements()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();//排除虚拟接⼝和没有启动运⾏的接⼝if (netInterface.isVirtual() || !netInterface.isUp()) {continue;} else {Enumeration<InetAddress> addresses = netInterface.getInetAddresses();while (addresses.hasMoreElements()) {ip = addresses.nextElement();if (ip != null && (ip instanceof Inet4Address || ip instanceof Inet6Address)) {ipList.add(ip.getHostAddress());}}}}} catch (Exception e) {e.printStackTrace();}return ipList;}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
java获取ip的方法

(原创实用版4篇)编制人员:_______________审核人员:_______________审批人员:_______________编制单位:_______________编制时间:____年___月___日序言下面是本店铺为大家精心编写的4篇《java获取ip的方法》,供大家借鉴与参考。
下载后,可根据实际需要进行调整和使用,希望能够帮助到大家,谢射!(4篇)《java获取ip的方法》篇1在 Java 中,获取 IP 地址的方法因场景而异。
如果你是在服务器端获取客户端的 IP 地址,可以使用 request.getRemoteAddr() 方法。
但是如果客户端通过代理服务器访问,这个方法获取到的可能是代理服务器的 IP 地址。
此时可以使用 request.getHeader("X-Forwarded-For") 方法获取客户端真实的 IP 地址。
如果客户端未通过代理服务器访问,则可以直接使用request.getRemoteAddr() 方法获取客户端的 IP 地址。
如果你是在客户端获取自己的 IP 地址,可以使用 NetworkInterface 类和InetAddress 类。
首先获取网络接口列表,然后遍历列表中的每一个网络接口,使用 InetAddress 类获取该网络接口的 IP 地址。
最后将获取到的 IP 地址打印出来即可。
《java获取ip的方法》篇2在 Java 中,获取 IP 地址的方法因场景而异。
如果你是在服务器端获取客户端的 IP 地址,可以使用 request.getRemoteAddr() 方法。
但是如果客户端通过代理服务器访问,这个方法返回的将是代理服务器的 IP 地址。
此时可以使用 request.getHeader("X-Forwarded-For") 方法获取客户端真实的 IP 地址。
如果客户端未通过代理服务器访问,则可以直接使用 request.getRemoteAddr() 方法获取客户端的 IP 地址。
JAVA获取客户端IP的方法

JAVA获取客户端IP的方法在Java中,有多种方法来获取客户端的IP地址。
下面将介绍一些常用的方法。
1. 使用ServletRequest对象获取:ServletRequest对象是Java Servlet规范提供的一个接口,用于获取HTTP请求的相关信息。
通过ServletRequest对象,可以获取到客户端的IP地址。
```javaString ipAddress = request.getRemoteAddr(;```2. 使用ServletRequest对象获取代理服务器IP地址:如果应用程序位于代理服务器之后,上述方法获取到的IP地址可能是代理服务器的IP地址,而非客户端的真实IP地址。
此时,可以通过请求头中的X-Forwarded-For字段获取客户端的真实IP地址。
```javaString ipAddress = request.getHeader("X-Forwarded-For");```3. 使用HttpServletRequest对象获取:HttpServletRequest是ServletRequest的子接口,提供了更多的方法来获取请求的详细信息。
其中,getRemoteAddr(方法用于获取客户端的IP地址。
```javaString ipAddress = request.getRemoteAddr(;```4. 使用 HttpServletReqeust的getHeader方法获取:和上述方法类似,通过获取请求头中的X-Forwarded-For字段,可以获取客户端的真实IP地址。
```javaString ipAddress = request.getHeader("X-Forwarded-For");```5. 使用RequestContextHolder获取:RequestContextHolder是Spring框架提供的一个工具类,用于获取当前请求的上下文信息。
JAVA如何获取客户端IP地址和MAC地址

JAVA如何获取客户端IP地址和MAC地址在Java中获取客户端IP地址和MAC地址需要使用Java的网络编程API,具体步骤如下:1.获取客户端IP地址获取客户端IP地址有多种方法,下面介绍两种常用的方法。
方法1:使用`InetAddress`类的`getLocalHost`方法```javaInetAddress localIp = InetAddress.getLocalHost(;String ip = localIp.getHostAddress(;System.out.println("客户端的IP地址是:" + ip);```方法2:使用`HttpServletRequest`类的`getRemoteAddr`方法```javaString ip = request.getRemoteAddr(;System.out.println("客户端的IP地址是:" + ip);```获取客户端MAC地址需要通过运行操作系统的命令来获取,下面介绍一种通用的方法。
方法:使用`InetAddress`类的`getByName`方法和`NetworkInterface`类的`getHardwareAddress`方法```javaInetAddress localHost = InetAddress.getByName("localhost");NetworkInterface networkInterface =NetworkInterface.getByInetAddress(localHost);byte[] mac = networkInterface.getHardwareAddress(;// 将mac地址转换成字符串形式StringBuilder sb = new StringBuilder(;for (int i = 0; i < mac.length; i++)sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));String macAddress = sb.toString(;System.out.println("客户端的MAC地址是:" + macAddress);```需要注意的是,获取MAC地址的方法在不同的操作系统上可能有所不同,在Linux、Windows等操作系统上应该是可行的,但在部分其他操作系统上可能无法获取MAC地址。
java 获取本机ip的方法

java 获取本机ip的方法Java 获取本机IP的方法介绍在开发Java应用程序时,有时候需要获取本机的IP地址。
本文将介绍几种获取本机IP的方法。
方法一:通过InetAddress类获取使用Java的InetAddress类可以获取到本机的IP地址。
以下是获取本机IP的代码片段:import ;import ;public class IPAddressExample {public static void main(String[] args) {try {InetAddress address = ();("IP Address: " + ());} catch (UnknownHostException e) {();}}}方法二:通过NetworkInterface类获取另一种获取本机IP地址的方法是使用Java的NetworkInterface 类。
以下是具体的代码示例:import ;import ;import ;import ;public class IPAddressExample {public static void main(String[] args) {try {Enumeration<NetworkInterface> networkInterfa ces = ();while (()) {NetworkInterface networkInterface = (); Enumeration<InetAddress> inetAddresses = ();while (()) {InetAddress address = ();if (!() && ()) {("IP Address: " + ());}}}} catch (SocketException e) {();}}}方法三:通过System类获取Java的System类提供了一个systemProperties变量,它包含一些系统相关的属性,其中就包括本机的IP地址。
Java获取IP地址(request.getRemoteAddr())

Java获取IP地址:request.getRemoteAddr()警惕项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。
我找到那块的代码,跟了一遍流程发现逻辑没有啥问题,但是最终的结果却还是鉴权不通过,实在有些诡异。
其基本逻辑为先取得配置的IP列表,然后通过request.getRemoteAddr()取得客户端的IP地址,做鉴权和校验,逻辑没问题,那么肯定是request.getRemoteAddr()出了问题,google下,发现有人遇到类似的问题。
最终定位为request.getRemoteAddr()这种方法在大部分情况下都是有效的。
但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。
但是在转发请求的HTTP 头信息中,增加了X-FORWARDED-FOR信息用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。
原来如此,我们的项目中正好是有前置apache,将一些请求转发给后端的weblogic,看来就是这样导致的咯。
给出一份还算靠谱的代码,如下:Java代码public String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}public String getIpAddr(HttpServletRequest request) { String ip =request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip =request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }如果有人遇到类似问题,请多加留意,呵呵。
Java获取IP地址(request.getRemoteAddr())

Java获取IP地址:request.getRemoteAddr()警惕项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。
我找到那块的代码,跟了一遍流程发现逻辑没有啥问题,但是最终的结果却还是鉴权不通过,实在有些诡异。
其基本逻辑为先取得配置的IP列表,然后通过request.getRemoteAddr()取得客户端的IP地址,做鉴权和校验,逻辑没问题,那么肯定是request.getRemoteAddr()出了问题,google下,发现有人遇到类似的问题。
最终定位为request.getRemoteAddr()这种方法在大部分情况下都是有效的。
但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。
但是在转发请求的HTTP 头信息中,增加了X-FORWARDED-FOR信息用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。
原来如此,我们的项目中正好是有前置apache,将一些请求转发给后端的weblogic,看来就是这样导致的咯。
给出一份还算靠谱的代码,如下:Java代码public String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}public String getIpAddr(HttpServletRequest request) { String ip =request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip =request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }如果有人遇到类似问题,请多加留意,呵呵。
java获取客户端ip的方法

(实用版4篇)编写人员:_______________审核人员:_______________审批人员:_______________编写单位:_______________编写时间:____年___月___日序言Download Note: This document is original and carefully arranged by our store. After downloading, you can adjust and use it according to your actual needs. We hope that this can help you, thank you!(4篇)《java获取客户端ip的方法》篇1在Java中,可以通过以下几种方式获取客户端的IP地址:1. 使用HttpServletRequest对象获取客户端IP地址```javapublic String getClientIp(HttpServletRequest request) {String ipAddress = request.getHeader("X-Forwarded-For");if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getHeader("Proxy-Client-IP");}if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getHeader("WL-Proxy-Client-IP");}if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {ipAddress = request.getRemoteAddr();}return ipAddress;}```这个方法会首先尝试从X-Forwarded-For头部获取客户端IP地址,如果获取不到,则尝试从Proxy-Client-IP和WL-Proxy-Client-IP头部获取,最后如果还是获取不到,则返回request.getRemoteAddr()方法获取的IP地址。
java中怎么获取客户端的真实的IP

java中怎么获取客户端的真实的IP服务器A被服务器B代理的,怎么能获取客户段的真实IP地址,现在在服务器A上获取的IP地址全是代理服务器B的IP地址,怎么样能获取真实的客户端的IP地址?在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。
但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。
但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。
用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。
当我们访问 /index.jsp/ 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046/index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:Java代码1.public String getRemortIP(HttpServletRequest request) {2. if (request.getHeader("x-forwarded-for") == null) {3. return request.getRemoteAddr();4. }5. return request.getHeader("x-forwarded-for");6. }可是当我访问 /index.jsp/ 时,返回的IP地址始终是unknown,也并不是如上所示的127.0.0.1 或192.168.1.110了,而我访问http://192.168.1.110:2046/index.jsp 时,则能返回客户端的真实IP地址,写了个方法去验证。
java中获取当前服务器的Ip地址的方法

java中获取当前服务器的Ip地址的⽅法1、tomcat是⼀款免费的开源Web服务器,如果部署在本地,那么对应的那么为localhost,对应地址为127.0.0.1。
如果部署在服务器(linux)系统类,则需要通过服务器的Ip地址进⾏访问。
2、下⾯说说怎么获取Ip地址:获取本地的Ip地址:public static void main(String[] args) { try {InetAddress address = InetAddress.getLocalHost();//获取的是本地的IP地址 //PC-20140317PXKX/192.168.0.121String hostAddress = address.getHostAddress());//192.168.0.121InetAddress address1 = InetAddress.getByName("");//获取的是该⽹站的ip地址,⽐如我们所有的请求都通过nginx的,所以这⾥获取到的其实是nginx服务器的IP地 String hostAddress1 = address1.getHostAddress());//124.237.121.122InetAddress[] addresses = InetAddress.getAllByName("");//根据主机名返回其可能的所有InetAddress对象for(InetAddress addr:addresses){System.out.println(addr);///14.215.177.38///14.215.177.37}} catch (UnknownHostException e) {e.printStackTrace();}}获取服务器的Ip地址(其他⼈写的)/*** 获取服务器IP地址* @return*/@SuppressWarnings("unchecked")public static String getServerIp(){String SERVER_IP = null;try {Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();InetAddress ip = null;while (netInterfaces.hasMoreElements()) {NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();ip = (InetAddress) ni.getInetAddresses().nextElement();SERVER_IP = ip.getHostAddress();if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress()&& ip.getHostAddress().indexOf(":") == -1) {SERVER_IP = ip.getHostAddress();break;} else {ip = null;}}} catch (SocketException e) {// TODO Auto-generated catch blocke.printStackTrace();}return SERVER_IP;}}基于SSM框架的农业物联⽹智能养殖系统中的养殖⽇志要求上传⼀张图⽚到服务器中。
Java获取服务器IP及端口的方法实例分析

Java获取服务器IP及端⼝的⽅法实例分析本⽂实例讲述了Java获取服务器IP及端⼝的⽅法。
分享给⼤家供⼤家参考,具体如下:前⼏天写过⼀个获取远程服务器的IP和端⼝的程序,从⽹上查了⼀些资料顺便加⼀些⾃⼰的理解,希望对⼤家有所帮助:struts2 获取requestHttpServletRequest requet=ServletActionContext.getRequest();requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()request.getHeader("User-Agent"); //就是取得客户端的系统版本request.getRemoteAddr(); //取得客户端的IPrequest.getRemoteHost() //取得客户端的主机名request.getRemotePort(); //取得客户端的端⼝request.getRemoteUser(); //取得客户端的⽤户request.getLocalAddr(); //取得服务器IPrequest.getLocalPort(); //取得服务器端⼝1、JSP中获得当前应⽤的相对路径和绝对路径根⽬录所对应的绝对路径:request.getRequestURI()⽂件的绝对路径 :application.getRealPath(request.getRequestURI());当前web应⽤的绝对路径 :application.getRealPath("/");取得请求⽂件的上层⽬录:new File(application.getRealPath(request.getRequestURI())).getParent()2 Servlet中获得当前应⽤的相对路径和绝对路径根⽬录所对应的绝对路径:request.getServletPath();⽂件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())当前web应⽤的绝对路径 :servletConfig.getServletContext().getRealPath("/");ServletContext对象获得⼏种⽅式:javax.servlet.http.HttpSession.getServletContext()javax.servlet.jsp.PageContext.getServletContext()javax.servlet.ServletConfig.getServletContext()3.Java类中获得绝对路径根据java.io.File的Doc⽂挡,可知: 默认情况下new File("/")代表的⽬录为:System.getProperty("user.dir")。
java获取ip为0:0:0:0:0:0:0:1的问题【转】

java获取ip为0:0:0:0:0:0:0:1的问题【转】0:0:0:0:0:0:0:1是ipv6的表现形式,对应ipv4来说相当于127.0.0.1,也就是本机如果项⽬部署在本机win7系统,访问时是通过 localhost 来访问,⽤java获取ip地址可能会出现该问题,这时获取的ip将是 0:0:0:0:0:0:0:1要是机器在局域⽹中,访问时使⽤⾃⼰的ip访问,如我的ip是:192.168.123.156这时候请求会经过路由器转发,所以服务器获取的就是本机的局域⽹内ip,在java中获取的ip就是 192.168.123.156了下⾯⼏个获取ip的⽅法:public static String getIP(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (!checkIP(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (!checkIP(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (!checkIP(ip)) {ip = request.getRemoteAddr();}return ip;}private static boolean checkIP(String ip) {if (ip == null || ip.length() == 0 || "unkown".equalsIgnoreCase(ip)|| ip.split(".").length != 4) {return false;}return true;}request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法最近在进⾏web开发时,在jsp页⾯获取服务器ip时,遇到了request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1,这是为什么呢,照道理讲,应该是127.0.0.1才对,为什么这个获取的值变成了ipv6了呢,⽽且我发现这种情况只有在服务器和客户端都在同⼀台电脑上才会出现(例如⽤localhost访问的时候才会出现),后来上⽹查了查原因,原来是/etc/hosts这个东西作怪(在windows上应该是C:\Windows\System32\drivers\etc\hosts这个⽂件),只需要注释掉⽂件中的 # ::1 localhost 这⼀⾏即可解决问题。
java ipv6 获取方法

java ipv6 获取方法在Java中获取IPv6地址的方法非常简单,可以使用`Inet6Address`类来实现。
IPv6地址是128位长的地址,通常由8个16位的块组成,每个块用冒号分隔开。
在Java中,可以使用以下方法获取IPv6地址:java.import .Inet6Address;import .InetAddress;import workInterface;import java.util.Enumeration;public class IPv6Example {。
public static void main(String[] args) {。
try {。
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();while (networkInterfaces.hasMoreElements()) {。
NetworkInterface networkInterface = networkInterfaces.nextElement();Enumeration<InetAddress> inetAddresses= networkInterface.getInetAddresses();while (inetAddresses.hasMoreElements()) {。
InetAddress address = inetAddresses.nextElement();if (address instanceof Inet6Address) {。
System.out.println("IPv6 Address: " + address.getHostAddress());}。
}。
}。
} catch (Exception e) {。
javalibrary新地址获取方法

javalibrary新地址获取方法
古时候学习或者搜索如javalibrary的资料,只能通过阅览书籍
或者找其他有关的专业人士和经验来获取信息,可想而知这是多么的
不便利。
如今,随着互联网的发展,在线查找到的信息的质量和数量,已经大大提高了。
现在,大家可以在线上搜索javalibrary新地址,
以满足不同大家的需要。
首先,如果你想获取Javalibrary新地址,你可以尝试搜索Java 官方网站,它可以提供大量有关Javalibrary新地址的信息;此外,
你也可以去各大搜索引擎上搜索,比如Google、Bing和Yahoo等,各
大搜索引擎都提供精确的相关结果,很快就能搜索到相关的
Javalibrary新地址;此外,你也可以到专业博客和论坛上去寻求帮助,这些社区搜索和博客评论中都有大量的Javalibrary新地址信息;此外,你也可以去相关的社交媒体网站,如Facebook、Twitter和微博等,来获取Javalibrary新地址的信息。
如今,越来越多的人都习惯了通过互联网搜索自己需要的信息,
获取Javalibrary新地址也是如此。
如果你细心搜索,不久就能获得
大量有用的Javalibrary新地址信息,让你学习和查询更加方便。
java如何获取浏览器的访问网址及其内容

getProtocol:使用协议.getMethod:请求方法.
getServerPort:请求端口号.
getContextPath:Context路径.
getServletPath: Servlet路径.
getRequestURI:URI路径.
getQueryString:查询字符串.
getRemoteAddr:使用者主机IP.
getRemotePort:使用者使用端口号.追问
我的意思是:例如,你正在上网,然后我通过这个就可以知道你上的什么网站,什么内容。
还有上边的如果行。
请问它在那个包里?
以下文字资料是由历史新知网wwwlishixinzhicom小编为大家搜集整理后发布的内容让我们赶快一起来看一下吧
java如何获取浏览器的访问网址及其内容
通过request俩获取,以下是request的方法介绍:
getParameterNames:取得客户端所发出的请求参数名称.
getParameter:可以让您指定请求参数名称,以取得对应的设定值.
java 获取当前请求域名的方法

java 获取当前请求域名的方法Java是一种广泛应用于开发各种类型应用的编程语言。
在Web开发中,获取当前请求域名是一项常见的需求。
本文将介绍几种使用Java获取当前请求域名的方法。
方法一:使用HttpServletRequest对象在Java Web应用中,可以使用HttpServletRequest对象来获取当前请求的信息。
其中,getRequestURL()方法可以返回一个StringBuffer对象,该对象包含了请求的完整URL。
我们可以从中提取出域名部分。
```javaimport javax.servlet.http.HttpServletRequest;public class DomainUtil {public static String getCurrentDomain(HttpServletRequest request) {StringBuffer url = request.getRequestURL();int index = url.indexOf("://") + 3;int endIndex = url.indexOf("/", index);return url.substring(index, endIndex);}}```方法二:使用URL对象Java的包中提供了URL类,可以用于解析URL并获取其中的各个部分。
通过创建URL对象,我们可以方便地获取当前请求的域名。
```javaimport .MalformedURLException;import .URL;public class DomainUtil {public static String getCurrentDomain(String url) throws MalformedURLException {URL currentUrl = new URL(url);return currentUrl.getHost();}}```方法三:使用ServletRequest对象在Java Web应用中,ServletRequest是一个通用的请求对象接口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Arrays.fill(pattern, '0');
return MessageFormat.format("{0,number," + new String(pattern) + "}",
new Object[] { new Long(value) });
ip138Result = queryIP138(ipAddr);
}
results.put(domain, new String[] { ipAddr, ip138Result });
}
return results;
}
/**
* 根据域名来得到IP(互联网要通哦)
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public static Map queryDomains(String[] domains) {
Map results = new HashMap();
Strimport java.text.MessageFormat;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class Test {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
String [] domains = {"",""};
Map map = queryDomains(domains);
System.out.println(map);
ipStrBuf.append(numberFormat(b, 3)).append(".");
}
ipStrBuf.setLength(ipStrBuf.length() - 1);// 去掉最后的.
return ipStrBuf.toString();
} catch (UnknownHostException e) {
//log.error("Unknown Host: " + domain, e);
e.printStackTrace();
return null;
}
}
public static String numberFormat(long value, int digit) {
import java.io.BufferedReader;
import java.io.InputStreamReader;
import .InetAddress;
import .URL;
import .UnknownHostException;
domain = domain.substring(protocolIndex + 3,
questionMarkIndex);
} else {
domain = domain.substring(protocolIndex + 3);
}
} else if (questionMarkIndex != -1) {
// }
int protocolIndex = domain.indexOf("://");
int questionMarkIndex = domain.indexOf('?', protocolIndex);
if (protocolIndex != -1) {
if (questionMarkIndex != -1) {
StringBuffer ipStrBuf = new StringBuffer();
for (int i = 0; i < ip.length; i++) {
short b = ip[i];
if (b < 0) {// 转换一下
b += 256;
}
String ip138Result = null;
for (int i = 0; i < domains.length; i++) {
String domain = domains[i];
ipAddr = getIPAddrByDomain(domain);
if (ipAddr != null) {
try {
URL url = new URL(urlStr);
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream(), "utf-8"));// 读取网页全部内容
String temp = null;
}
public static String queryIP138(String ip) {
String urlStr = "/ips138.asp?ip=" + ip
+ "&action=2";
String result = "";
domain = domain.substring(0, questionMarkIndex);
}
InetAddress inetAddress = InetAddress.getByName(domain);
byte[] ip = inetAddress.getAddress();
result = temp.substring(start, end);
}
}
} catch (Exception e) {
}
return result;
}
}
*
* @param domain
* @return
*/
public static String getIPAddrByDomain(String domain) {
try {
// if (!StringUtils.hasText(domain)) {
// return null;
while ((temp = in.readLine()) != null) {
int start = temp.indexOf("<ul class=\"ul1\"><li>本站主数据:");
if (start != -1) {
int end = temp.indexOf("</li><li>");