mac的java代码 macbookpro写java代码( 二 )


在终端内输入javac xxx.java (这是编译命令,xxx是你的文件名)
编译后 在终端输入java xxx(xxx是你刚刚编译的文件名,这里不用.java后缀)
求获取客户端mac地址java代码,急需急需,麻烦了通过ip获取指定ip地址mac的java代码的mac地址mac的java代码,ip可以通过请求request获取,
request.getRemoteAddr();
(当然获取ip也不是在任何情况下都有效的)
通过mac的java代码了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址 。
您也许需要通过其他的方式获取,(见附)
//获取mac如下 (nbtstat -A IPAddress是对给定的IP地址解析其主机名 。如果不能正常解析它的主机
//名的话,有可能是防火墙屏蔽了 。也可能是在DNS中将NetBios 解析选项屏蔽了 。)
public String getMACAddress(String ip){
String str = "";
String macAddress = "";
try {
Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i100; i++) {
str = input.readLine();
if (str != null) {
if (str.indexOf("MAC Address")1) {
macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());
break;
}
if (str.indexOf("MAC Address")1) {
macAddress = str.substring(str.indexOf("MAC 地址") + 14, str.length());
break;
}
//以上有个判断,不同系统cmd命令执行的返回结果展示方式不一样,我测试的win7是MAC 地址
//所以又第二个if判断 你可先在你机器上cmd测试下nbtstat -A 命令 当然得有一个你可以ping通的
//网络ip地址,然后根据你得到的结果中mac地址显示方式来确定这个循环取值
}
}
} catch (IOException e) {
e.printStackTrace(System.out);
}
return macAddress;
}
附:
通过代理了的客户端ip地址获取方式
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
获得客户端真实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;
}
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串 。如:
X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用户真实IP为: 192.168.1.110
mac的java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于macbookpro写java代码、mac的java代码的信息别忘了在本站进行查找喔 。

推荐阅读