cxf_webservice 获取客户端mac和ip
来源:互联网 发布:云计算 国家政策汇总 编辑:程序博客网 时间:2024/05/01 07:36
package mac.test.server;
import javax.jws.WebService;
@WebService
public interface MacServer {
public String getMac();
public String getIp();
}
++++++++++++++++++++++++++++++++++++++++++++
package mac.test.server;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.PhaseInterceptorChain;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
public class MacServerImpl implements MacServer {
@Override
public String getMac() {
String macadress = null;
try {
InetAddress ia = InetAddress.getLocalHost();
System.out.println(ia);
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
System.out.println("mac数组长度:"+mac.length);
StringBuffer sb = new StringBuffer("");
for(int i=0; i<mac.length; i++) {
if(i!=0) {
sb.append("-");
}
//字节转换为整数
int temp = mac[i]&0xff;
String str = Integer.toHexString(temp);
System.out.println("每8位:"+str);
if(str.length()==1) {
sb.append("0"+str);
}else {
sb.append(str);
}
}
System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
macadress= sb.toString().toUpperCase();
} catch (Exception e) {
e.printStackTrace();
}
return macadress;
}
@Override
public String getIp() {
String ipAddress =null;
Message message = PhaseInterceptorChain.getCurrentMessage();
HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
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();
//这里主要是获取本机的ip,可有可无
if (ipAddress.equals("127.0.0.1")
|| ipAddress.endsWith("0:0:0:0:0:0:1")) {
// 根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress = inet.getHostAddress();
}
}
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
// = 15
if (ipAddress.indexOf(",") > 0) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
}
}
//或者这样也行,对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
//return ipAddress!=null&&!"".equals(ipAddress)?ipAddress.split(",")[0]:null;
return ipAddress;
}
}
阅读全文
0 0
- cxf_webservice 获取客户端mac和ip
- jsp获取客户端ip和mac地址
- JavaScript获取客户端IP和MAC地址
- IPUtil获取客户端IP地址和Mac
- 客户端和服务器端的IP、MAC地址等的获取
- 服务器端和客户端IP地址及MAC地址获取
- 获取客户端ip和mac地址的方法总结
- 获取客户端的IP地址和Mac地址
- java获取客户端IP地址和MAC地址
- Selvet获取客户端ip地址和mac地址
- 获取客户端网卡MAC地址和IP地址的方法
- 获取客户端IP和MAC地址工具类
- Java获取访问服务端的客户端IP和MAC地址
- C# 获取客户端的IP地址和MAC地址
- JAVA获取客户端IP地址和MAC地址
- 获取客户端MAC地址、IP地址、计算机名和获取本级MAC地址、IP地址、计算机名
- JAVASCRIPT获取客户端IP及MAC地址
- asp.net 获取客户端IP与mac
- Vue基础之Vue列表渲染
- C#扫雷游戏
- 增量式PID控制算法
- ef笔记
- String,Stringbuffer,StringBulider区别
- cxf_webservice 获取客户端mac和ip
- ByteBuf的源码分析
- 需求调研的“七种武器”
- 如何生成git的公钥和私钥
- 浅谈AIDL
- 浏览器兼容 4 CSS hack
- static在java中的用法
- 相机常用术语解释
- Lua知识点四 编译·运行·错误信息