`
温柔一刀
  • 浏览: 862493 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java获取服务器端网卡地址

    博客分类:
  • java
阅读更多
java 代码
  1. package com.ctgusec.bean;   
  2.   
  3. import java.io.BufferedReader;   
  4. import java.io.IOException;   
  5. import java.io.InputStreamReader;   
  6. import java.io.LineNumberReader;   
  7.   
  8. /**  
  9.  *   
  10.  * @author zhupan  
  11.  * @version 1.0  
  12.  */  
  13. public class MACAddress {   
  14.  public MACAddress() {   
  15.  }   
  16.   
  17.  public static String getMACAddress() {   
  18.   String address = "";   
  19.   String os = System.getProperty("os.name");   
  20.   if (os != null && os.startsWith("Windows")) {   
  21.    try {   
  22.     String command = "cmd.exe /c ipconfig /all";   
  23.     Process p = Runtime.getRuntime().exec(command);   
  24.     BufferedReader br = new BufferedReader(new InputStreamReader(p   
  25.       .getInputStream()));   
  26.     String line;   
  27.     while ((line = br.readLine()) != null) {   
  28.      if (line.indexOf("Physical Address") > 0) {   
  29.       int index = line.indexOf(":");   
  30.       index += 2;   
  31.       address = line.substring(index);   
  32.       System.out.println(address);   
  33.       break;   
  34.      }   
  35.     }   
  36.     br.close();   
  37.     return address.trim();   
  38.    } catch (IOException e) {   
  39.    }   
  40.   }   
  41.   return address;   
  42.  }   
  43.   
  44.  // 通过IP获取网卡地址   
  45.  public static String getMacAddressIP(String remotePcIP) {   
  46.   String str = "";   
  47.   String macAddress = "";   
  48.   try {   
  49.    Process pp = Runtime.getRuntime().exec("nbtstat -A " + remotePcIP);   
  50.    InputStreamReader ir = new InputStreamReader(pp.getInputStream());   
  51.    LineNumberReader input = new LineNumberReader(ir);   
  52.    for (int i = 1; i < 100; i++) {   
  53.     str = input.readLine();   
  54.     if (str != null) {   
  55.      if (str.indexOf("MAC Address") > 1) {   
  56.       macAddress = str.substring(   
  57.         str.indexOf("MAC Address") + 14, str.length());   
  58.       break;   
  59.      }   
  60.     }   
  61.    }   
  62.   } catch (IOException ex) {   
  63.   }   
  64.   return macAddress;   
  65.  }   
  66.   
  67.  // 通过机器名获取网卡地址   
  68.  public static String getMacAddressName(String remotePcIP) {   
  69.   String str = "";   
  70.   String macAddress = "";   
  71.   try {   
  72.    Process pp = Runtime.getRuntime().exec("nbtstat -a " + remotePcIP);   
  73.    InputStreamReader ir = new InputStreamReader(pp.getInputStream());   
  74.    LineNumberReader input = new LineNumberReader(ir);   
  75.    for (int i = 1; i < 100; i++) {   
  76.     str = input.readLine();   
  77.     if (str != null) {   
  78.      if (str.indexOf("MAC Address") > 1) {   
  79.       macAddress = str.substring(   
  80.         str.indexOf("MAC Address") + 14, str.length());   
  81.       break;   
  82.      }   
  83.     }   
  84.    }   
  85.   } catch (IOException ex) {   
  86.   }   
  87.   return macAddress;   
  88.  }   
  89.   
  90.  public static void main(String[] args) {   
  91.   System.out.println(MACAddress.getMACAddress());            
  92.         System.out.println(getMacAddressIP("192.168.175.200"));          
  93.         System.out.println(getMacAddressName("527fefbedd5b43b."));   
  94.   
  95.  }   
  96. }   
  97.   
  98.   
  99.   
  100.   
  101.   
  102. package com.ctgusec.bean;   
  103.   
  104. import java.io.IOException;   
  105. import java.io.InputStream;   
  106. import java.io.InputStreamReader;   
  107. import java.io.LineNumberReader;   
  108.   
  109. /**  
  110.  *   
  111.  * @author zhupan  
  112.  * @version 1.0  
  113.  */  
  114.   
  115. public class GetMACAddress {   
  116.  public String getMACAddress(String ipAddress) {   
  117.   String str = "", strMAC = "", macAddress = "";   
  118.   try {   
  119.    Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);   
  120.    InputStreamReader ir = new InputStreamReader(pp.getInputStream());   
  121.    LineNumberReader input = new LineNumberReader(ir);   
  122.    for (int i = 1; i < 100; i++) {   
  123.     str = input.readLine();   
  124.     if (str != null) {   
  125.      if (str.indexOf("MAC Address") > 1) {   
  126.       strMAC = str.substring(str.indexOf("MAC Address") + 14,   
  127.         str.length());   
  128.       break;   
  129.      }   
  130.     }   
  131.    }   
  132.   } catch (IOException ex) {   
  133.    return "Can't Get MAC Address!";   
  134.   }   
  135.   //   
  136.   if (strMAC.length() < 17) {   
  137.    return "Error!";   
  138.   }   
  139.   macAddress = strMAC.substring(02) + ":" + strMAC.substring(35)   
  140.     + ":" + strMAC.substring(68) + ":" + strMAC.substring(911)   
  141.     + ":" + strMAC.substring(1214) + ":"  
  142.     + strMAC.substring(1517);   
  143.   //   
  144.   return macAddress;   
  145.  }   
  146.   
  147.  public static void main(String[] args) {   
  148.   GetMACAddress getMACAddress = new GetMACAddress();   
  149.   System.out.println(getMACAddress.getMACAddress("192.168.175.66"));   
  150.   
  151.   try {   
  152.    java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");   
  153.    InputStream istr = proc.getInputStream();   
  154.    byte[] data = new byte[1024];   
  155.    istr.read(data);   
  156.    String netdata = new String(data);   
  157.    System.out.println("Your Mac Address=" + procAll(netdata));   
  158.   } catch (IOException e) {   
  159.    System.out.println("error=" + e);   
  160.   }   
  161.  }   
  162.   
  163.  public static String procAll(String str) {   
  164.   return procStringEnd(procFirstMac(procAddress(str)));   
  165.  }   
  166.   
  167.  public static String procAddress(String str) {   
  168.   int indexof = str.indexOf("Physical Address");   
  169.   if (indexof > 0) {   
  170.    return str.substring(indexof, str.length());   
  171.   }   
  172.   return str;   
  173.  }   
  174.   
  175.  public static String procFirstMac(String str) {   
  176.   int indexof = str.indexOf(":");   
  177.   if (indexof > 0) {   
  178.    return str.substring(indexof + 1, str.length()).trim();   
  179.   }   
  180.   return str;   
  181.  }   
  182.   
  183.  public static String procStringEnd(String str) {   
  184.   int indexof = str.indexOf("\r");   
  185.   if (indexof > 0) {   
  186.    return str.substring(0, indexof).trim();   
  187.   }   
  188.   return str;   
  189.  }   
  190. }   
  191.   
  192.   
  193.     
分享到:
评论

相关推荐

    Java/JSP获得客户端网卡MAC地址的三种方法解析

    本文将深入解析在Java/JSP环境中获取客户端网卡MAC地址的三种常见方法,旨在为开发者提供全面而深入的理解。 ### 方法一:通过Java NIO(非阻塞I/O)库 Java NIO库提供了访问底层网络接口的能力,从而可以获取包括...

    MacBindingTool_程序启动绑定MAC地址_RSA加密MAC地址绑定_获取本机所有网卡MAC地址_

    通常,开发者会将公钥嵌入到程序中,而私钥则保存在服务器端。当程序启动时,它会获取本机所有网卡的MAC地址,使用公钥加密这些地址并发送到服务器进行验证。服务器使用私钥解密并对比预存的MAC地址,如果匹配,返回...

    Android UDP发送广播获取服务器IP

    同时,服务器端也需要监听这两个端口,并在接收到广播请求后,回复自己的IP地址和端口号。 在`MyAppUdp`这个文件中,你可能会看到类似这样的实现,包括错误处理、多线程(因为网络操作通常应在单独的线程中执行)...

    Java中的UDP协议编程

    在实际编程中,服务器端会创建一个`DatagramSocket`并绑定到特定端口,然后在一个循环中调用`receive()`方法等待客户端发送的数据。客户端则创建`DatagramSocket`,构造`DatagramPacket`,填充数据和目标地址信息,...

    获取客户端IP、MAC

    首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起HTTP请求时,服务器可以接收到请求对象,从中提取出客户端的IP地址。...

    java网络教程

    1. **服务器端**: - 创建`ServerSocket`实例,绑定到特定端口。 - 使用`accept()`方法等待客户端连接。 - 为每个客户端创建新的线程来处理通信。 2. **客户端**: - 创建`Socket`实例,连接到服务器。 - 发送...

    获取客户端真实IP(支持代理服务器)

    当客户端请求经过反向代理服务器后,服务器端接收到的请求中`request.getRemoteAddr()`方法获取的是代理服务器的IP地址,而不是客户端的真实IP。这是因为反向代理服务器作为客户端与服务器之间的中间层,它代替...

    Java中的网络编程学习总结

    - **服务器端Socket编程**:使用`ServerSocket`类监听端口,并接受客户端的连接请求。 通过以上介绍,我们可以看到Java网络编程涉及的知识点非常广泛,从基本的网络概念到具体的编程实现都有详细的讲解。这对于初学...

    计算机网络实验报告 获取MAC socket通信

    服务器端: package com.softeem.socket.server; import java.io.FileNotFoundException; import java.io.IOException; public class FileServer { /** * @param args */ public static void main(String[]...

    在linux下架构resin服务器和mysql数据库

    * `IPADDR=192.168.1.23`:如果设置网卡获得 IP 地址的方式为静态指定,此字段就指定了网卡对应的 IP 地址 * `IPV6INIT=no`:禁用 IPv6 * `IPV6_AUTOCONF=no`:禁用 IPv6 自动配置 * `NETMASK=255.255.255.0`:网卡...

    最烦网卡,临时上传个jar,skywalking-apm-9.1.0

    压缩包“apache-skywalking-apm-bin”很可能是SkyWalking的二进制发行版,包含了运行SkyWalking所需的所有文件,如服务器端的可执行文件、配置文件、文档等。安装和使用SkyWalking通常涉及以下步骤: 1. **下载**:...

    android 蓝牙 串口

    - **服务器端与客户端**:可以将一个蓝牙设备设置为服务器端,另一个设置为客户端,通过创建一个连接管理类来管理这两个设备之间的通信。 - **类实现**:使用`BluetoothAdapter`, `BluetoothDevice`, `...

    比较全的驱动包有插件包

    在驱动包的上下文中,JAR文件可能包含了一些特定于Java平台的驱动程序或插件,例如服务器端的Java驱动,或者是用于管理Java应用程序与硬件交互的库。 驱动包中的插件可能是为了增强或扩展某些硬件功能而设计的。...

    计算机科学与技术_基于网络爬虫技术的网络新闻分析系统的设计与实现.docx

    JSP页面能够直接嵌入Java代码,使得开发者可以在服务器端执行复杂的逻辑操作,并将结果返回给客户端。在本项目中,JSP被用来构建网页框架,展示爬取到的数据。 3. **ECharts工具**:ECharts是一款强大的JavaScript...

    惠普HP-ILO配置图文介绍

    然后,在笔记本或者PC上,打开IE(支持java),然后地址那里书写iLO DNS name(写在纸吊牌上的,你需要DHCP DNS服务器在局域网内)。就可以看到iLO界面了。或者直接填写iLO的IP地址也可以。 iLO界面除了报告一些...

    android 蓝牙开发

    4. **BluetoothServerSocket类**:负责监听连接请求,必须有一个设备作为服务器端开启服务套接字,以便远程设备发起连接。 此外,**BluetoothClass类**描述了蓝牙设备的特点和能力,包括设备的主、次设备类和相关...

    利用魔法封包技术写的远程开机程序

    - **发送端准备**:发送端,即你的程序`PowerOn.exe`,需要获取目标设备的MAC地址,这是识别目标计算机的关键。 - **创建并发送魔法封包**:程序`PowerOn.exe`根据输入的MAC地址构造魔法封包,然后通过网络发送到...

    stm32嵌入式课程设计网络通信实验

    TCP Server测试的时候,直接使用DHCP获取到的IP(DHCP失败,则使用静态IP)作为服务器地址,端口号固定 为:8088。在电脑端,可以使用网络调试助手(TCP Client模式)连接开发板,连接成功后,屏幕显示连接上 的...

Global site tag (gtag.js) - Google Analytics