`
JavaSam
  • 浏览: 955055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获取mac地址+ip地址+时间生成id

    博客分类:
  • JAVA
 
阅读更多
以windows举例。
运行命令" cmd  ipconfig /all"就会出现以下结果
 
Physical Address. . . . . . . . . : 20-CF-30-9A-60-EE
。
java就能过这样的命令来获取。以下是示例。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;



public class TestMac
{
      public static void main(String[] args) {
        System.out.println("Operation System=" + getOsName());
        System.out.println("Mac Address=" + getMACAddress());
        System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"));
     }

    public static String getOsName() {
        String os = "";
        os = System.getProperty("os.name");
        return os;
    }
    
    public static String getMACAddress() {
        String address = "";
        String os = getOsName();
        if (os.startsWith("Windows")) {
            try {
                String command = "cmd.exe /c ipconfig /all";
                Process p = Runtime.getRuntime().exec(command);
                BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                String line;
                while ((line = br.readLine()) != null) {
                    if (line.indexOf("Physical Address") > 0) {
                        int index = line.indexOf(":");
                        index += 2;
                        address = line.substring(index);
                        break;
                    }
                }
                br.close();
                return address.trim();
            } catch (IOException e) {
            }
        } else if (os.startsWith("Linux")) {
            String command = "/bin/sh -c ifconfig -a";
            Process p;
            try {
                p = Runtime.getRuntime().exec(command);
                BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                String line;
                while ((line = br.readLine()) != null) {
                    if (line.indexOf("HWaddr") > 0) {
                        int index = line.indexOf("HWaddr") + "HWaddr".length();
                        address = line.substring(index);
                        break;
                    }
                }
                br.close();
            } catch (IOException e) {
            }
        }
        address = address.trim();
        return address;
    }

    

    public static String getMACAddress(String ipAddress) { 
		String str = "", strMAC = "", macAddress = ""; 
		try { 
			Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress); 
			InputStreamReader ir = new InputStreamReader(pp.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) { 
						strMAC = str.substring(str.indexOf("MAC Address") + 14, 
						str.length()); 
						break; 
					} 
				} 
			} 
		} catch (IOException ex) { 
			return "Can't Get MAC Address!"; 
		} 
			// 
		if (strMAC.length() < 17) { 
			return "Error!"; 
		} 
		
		macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5) 
		+ ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11) 
		+ ":" + strMAC.substring(12, 14) + ":" 
		+ strMAC.substring(15, 17); 
		// 
		return macAddress; 
	} 
} 



ip地址
import java.util.*;
 import java.net.*
;public class getMyIP { 
       public static void main(String[] args) {
                 String IP = null; String host = null; 
                  try {
                     InetAddress ia = InetAddress.getLocalHost(); 
                     host = ia.getHostName();//获取计算机名字
                     IP= ia.getHostAddress();//获取IP
                   } catch(UnknownHostException e) {
                           e.printStackTrace();
                   } 
                         System.out.println(host);
                     System.out.println(IP);  
  } 
}

 

2
5
分享到:
评论

相关推荐

    根据mac地址生成服务器唯一机器码

    "根据MAC地址生成服务器唯一机器码"这一技术就是基于这个需求而诞生的。MAC地址(Media Access Control Address)是网络硬件设备的物理地址,如网卡、交换机等,它是全球唯一的。利用MAC地址生成的机器码可以作为...

    java得到机器的MAC,硬盘序列序列号和IP地址

    得到机器的MAC,硬盘序列序列号和IP地址 public static void main(String[] args) ...{ String osName = System.getProperty("os.name"); StringBuffer systemPathBuff = new StringBuffer(""); if (osName.index...

    序列号生成器

    - **数据中心ID和工作节点ID**:这两个参数可以通过多种方式动态获取,如通过获取机器的MAC地址、IP地址等方式,这使得系统能够轻松地扩展到更多的数据中心或工作节点。 - **序列号设计**:序列号采用12位,意味着每...

    java web在高并发和分布式下实现订单号生成唯一的解决方案

    为了解决这个问题,我们需要从多方面考虑,包括时间戳、随机数、线程ID、进程ID、MAC 地址、IP 地址、CPU 序列号等。下面我们将详细介绍四种解决方案。 方案一:使用时间戳和随机数 在没有并发的情况下,我们可以...

    IPAddress:Java库,用于处理IPv4和IPv6的IP地址和子网

    IP地址 用于处理IPv4和IPv6的IP地址和子网的库 ,打包为OSGI软件包,... 需要Java 8或更高版本,具有MAC地址支持,与IPv6的EUI-48和EUI-64 MAC集成,新地址框架,新的IP字符串格式已解析和生成以及其他附加功能 需要

    android 获取手机上面的IMSI序列号

    本文将详细介绍如何在Android应用中获取IMSI(国际移动用户识别码)、IMEI(国际移动设备识别码)、MAC地址、IP地址、当前时间、经纬度以及网络类型。 首先,让我们了解这些概念: 1. **IMSI**:IMSI是手机用户在...

    通信大厂java工程师岗位笔试面试题

    15. **其他编程题目**:包括 C 语言编程题,如循环计数、字符串大小写转换、判断回文数、素数生成、进程同步等问题,以及链表、二叉树操作,网络协议及硬件相关知识,如物理层设备、MAC 地址、传输层协议、VLAN、...

    登录添加Mac校验

    - **首次登录**:用户在首次登录时,服务器记录该设备的标识(例如,浏览器的User-Agent字符串、IP地址、操作系统信息等),并生成一个与该设备关联的密钥。 - **后续登录**:当同一账号尝试在另一台设备上登录时...

    开源项目-rs-xid.zip

    这可以是IP地址、MAC地址或者是自定义的工作节点ID,确保在多节点系统中不会冲突。 3. **序列号**:每个节点在给定时间内的连续请求会被分配一个序列号,这个序列号通常是循环利用的,以保证在高并发情况下仍能生成...

    准确在线人数统计准确在线人数统计

    4. IP地址与MAC地址:通过识别用户的IP地址和MAC地址,可以追踪用户设备,但考虑到代理服务器、动态IP分配等因素,这种方法准确性有限。 二、计数策略 1. 实时计数:实时统计在线用户,通常适用于高并发、对实时性...

    公司到勤管理系统 简要文档

    - **员工信息管理**:管理员有权查看所有员工的基本信息,如IP地址、MAC地址、员工ID等,并具有相应的修改权限。 - **考勤情况查询**:管理员能够查询每个员工的考勤情况,包括当月到勤次数、迟到时间以及根据这些...

    jgoose:IEC61850 GOOSE的Java实现

    1. **GOOSE报文的创建**:生成符合IEC61850规范的GOOSE报文,包括设置源MAC地址、VLAN ID、GOOSE ID、数据集(MMS变量)等参数。 2. **GOOSE报文的解析**:接收GOOSE报文并解析其内容,提取所需信息,如源站、目标...

    从设置虚拟机开始搭建集群

    首先,我们需要三台虚拟机,分别命名为master、slaves01和slaves02,分配不同的IP地址和MAC地址。 1. **主机配置**: - **IP地址**:通过`ip addr`命令查看IP地址,然后编辑`/etc/sysconfig/network-scripts/ifcfg...

    基于VMware-Workstation8的双节点hadoop配置.doc

    系统主机名与IP地址分配如下: - hadoop1 (namenode): eth0 - 192.168.211.100/24, gw - 192.168.211.1 - hadoop2 (datanode): eth0 - 192.168.211.101/24, gw - 192.168.211.1 接下来,Hadoop环境的搭建需要安装...

    华中科技大学计算机网络实验1-4实验报告

    - **ARP**(Address Resolution Protocol):ARP命令用于查看和修改IP地址与物理地址(MAC地址)之间的转换表。`ARP -s`用于添加静态映射,`ARP -d`用于删除映射,`ARP -a`用于显示全部映射。 - **Ipconfig**:这...

    八斗学院3.如何在自己的电脑上搭建hadoop集群? (2).docx

    - 为每个从节点设置不同的静态IP地址,确保它们在同一网段且不冲突,使用桥接模式连接网络。 6. **建立互信关系**: - 在主节点上生成SSH密钥对:`ssh-keygen`。 - 将主节点的公钥复制到所有从节点:`cat ~/.ssh...

    Android 区别真机和模拟器的几种方法

    2. **MAC地址获取**:通过socket和ioctl调用来获取设备的MAC地址,真机通常会显示`wlan0`的IP和MAC地址,而模拟器则显示`eth0`的信息。 3. **系统属性检查**:使用`__system_property_get()`函数获取`ro.boot....

    fibbery-commons:一些常用的实体类或者操作类

    常用工具类 Snowflake算法生成的分布式高效ID 把时间戳,工作机器id,序列号组合在...机器级的话你可以使用MAC地址来唯一标示工作机器,工作进程级可以使用IP+Path来区分工作进程。如果工作机器比较少,可以使用配置

    大数据技术分享 无线客户端 手机移动端 数据实践 数据采集、数据处理、数据加密、数据统计分析 共19页.pdf

    Device ID之争是指Android和iOS设备的标识符,包括IMEI、IMSI、UDID、Mac地址、OpenUDID、SecureUDID等。 六、自定义ID 自定义ID可以根据设备参数自己生成,可以本地缓存(多处存储),防止形成信息孤岛。 七、...

    hadoop集群搭建

    为了方便访问集群中的各节点,需要在每个节点上配置`/etc/hosts`文件,添加各节点的IP地址和主机名映射。例如: ``` 192.168.145.128 hadoop-node-01 hadoop01 192.168.145.129 hadoop-node-02 hadoop02 192.168....

Global site tag (gtag.js) - Google Analytics