java獲取ip地址和mac地址
/**
* @param paramHttpServletRequest
* @param paramHttpServletResponse
* @return
* @方法說明 獲取ip地址
* @date 2011-12-26
* @author 孫偉
*/
public static String getReqIP(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse) {
String str = paramHttpServletRequest.getHeader("x-forwarded-for");
if ((str == null) || (str.length() == 0) || ("unknown".equalsIgnoreCase(str)))
str = paramHttpServletRequest.getHeader("Proxy-Client-IP");
if ((str == null) || (str.length() == 0) || ("unknown".equalsIgnoreCase(str)))
str = paramHttpServletRequest.getHeader("WL-Proxy-Client-IP");
if ((str == null) || (str.length() == 0) || ("unknown".equalsIgnoreCase(str)))
str = paramHttpServletRequest.getRemoteAddr();
return str;
}
/**
* @param ip
* @return
* @throws IOException
* @方法說明 獲取Mac地址
* @date 2011-12-28
* @author 孫偉
*/
public static String getMacAddress(String ip) throws IOException {
String headIp = ip.substring(0, 3);
if(headIp.equalsIgnoreCase("0:0")||headIp.equalsIgnoreCase("127")){
return "";
}
byte[] t_ns = new byte[50];
t_ns[0] = 0x00;
t_ns[1] = 0x00;
t_ns[2] = 0x00;
t_ns[3] = 0x10;
t_ns[4] = 0x00;
t_ns[5] = 0x01;
t_ns[6] = 0x00;
t_ns[7] = 0x00;
t_ns[8] = 0x00;
t_ns[9] = 0x00;
t_ns[10] = 0x00;
t_ns[11] = 0x00;
t_ns[12] = 0x20;
t_ns[13] = 0x43;
t_ns[14] = 0x4B;
for (int i = 15; i < 45; i++) {
t_ns[i] = 0x41;
}
t_ns[45] = 0x00;
t_ns[46] = 0x00;
t_ns[47] = 0x21;
t_ns[48] = 0x00;
t_ns[49] = 0x01;
int iRemotePort=137;
byte[] buffer = new byte[1024];
DatagramSocket ds=new DatagramSocket();
DatagramPacket dpk = new DatagramPacket(t_ns, t_ns.length, InetAddress.getByName(ip), iRemotePort);
ds.send(dpk);
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
ds.receive(dp);
byte[] brevdata = dp.getData();
int i = brevdata[56] * 18 + 56;
String sAddr = "";
StringBuffer sb = new StringBuffer(17);
for (int j = 1; j < 7; j++) {
sAddr = Integer.toHexString(0xFF & brevdata[i + j]);
if (sAddr.length() < 2) {
sb.append(0);
}
sb.append(sAddr.toUpperCase());
if (j < 6)
sb.append(':');
}
try {
ds.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return sb.toString();
/*String str = "";
String macAddress = "";
try {
Process pro = Runtime.getRuntime().exec("nbtstat -A " + ip);
InputStreamReader ir = new InputStreamReader(pro.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i < 100; i++) {
str = input.readLine();
if (str != null) {
if (str.indexOf("MAC Address") > 1) {
macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());
break;
}
}
}
} catch (IOException e) {
}
return macAddress;*/
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25261409/viewspace-1056973/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 中獲取MAC地址 和IP地址JavaMac
- ASPNET獲取IP地址 MAC地址Mac
- Java獲取本機名稱、本機MAC地址、IP地址JavaMac
- android 獲取裝置IP和Mac地址AndroidMac
- Java獲取本機ip地址Java
- 最簡單的C# 獲取 MAC 地址 IP 地址C#Mac
- java獲取本機的ip地址Java
- saltstack獲取IP地址
- 獲取IP地址方法
- 獲取IP地址命令
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- 美國ip地址如何獲取?
- 獲取真實IP地址
- Python 基礎練習 —— 獲取本機 Mac 地址、ip 地址和主機名PythonMac
- IP地址和MAC地址的關係Mac
- MAC 地址與IP地址Mac
- 如何獲取海外住宅IP地址?
- jQuery獲取本機ip地址jQuery
- Oracle中獲取主機名和IP地址Oracle
- Linux下用Java獲取本機IP地址LinuxJava
- ASP.NET獲取客戶端IP及MAC地址ASP.NET客戶端Mac
- mac地址和ip地址有什麼區別Mac
- PHP獲取IP地址的方法,防止偽造IP地址注入攻擊PHP
- Apapche獲取真實IP地址方法
- 獲取本地的IP地址(內網)內網
- DHCP獲取IP地址的過程
- Oracle獲取連線的IP地址Oracle
- 在cmd中獲取ip地址和主機名
- 獲取客戶端Mac地址客戶端Mac
- php怎麼獲取mac地址?PHPMac
- 獲取IP地址的途徑有哪些?要如何保護IP地址不被竊取?
- python獲取本機IP、mac地址、計算機名PythonMac計算機
- iOS 獲取手機外網和內網IP地址iOS內網
- 什麼是自動獲取IP地址
- 如何設定自動獲取ip地址
- [Q]怎麼樣獲取IP地址zt
- 如何使用 Go 獲取你的 IP 地址Go
- Android下如何獲取Mac地址?AndroidMac