Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 355|回复: 0

[Java基础知识]java程序获取本机ip,mac,os名称,版本等

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-9-30 17:45:08 | 显示全部楼层 |阅读模式
    1. import java.io.BufferedReader;
    2. import java.io.InputStream;
    3. import java.io.InputStreamReader;
    4. import java.net.InetAddress;
    5. import java.net.NetworkInterface;
    6. import java.util.ArrayList;
    7. import java.util.Formatter;
    8. import java.util.List;
    9. import java.util.Locale;
    10. import java.util.Map;
    11. import java.util.Properties;
    12. public class ReadIpConfig {
    13.     //通过截取cmd流方式得到计算机的配置信息(不好)
    14.     public static List< String> getIpAddress(){
    15.         Process p = null;
    16.         List< String> address  = new ArrayList< String>();
    17.         try{
    18.             p = new ProcessBuilder("ipconfig","/all").start();
    19.         }catch(Exception e){
    20.             return address;
    21.         }
    22.         StringBuffer sb = new StringBuffer();
    23.         //读取进程输出值
    24.         InputStream inputStream = p.getInputStream();
    25.         BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
    26.         String s = "";
    27.         try{
    28.             while((s=br.readLine())!=null){
    29.                 sb.append(s+"
    30. ");
    31.             }
    32.         }catch(Exception e){
    33.             e.printStackTrace();
    34.         }finally{
    35.             try{
    36.                 inputStream.close();
    37.             }catch(Exception e){
    38.                 e.printStackTrace();
    39.             }
    40.         }
    41.         System.out.println(sb);
    42.         return address;
    43.     }
    44.    
    45.     public static void getIpconfig(){
    46.         Map< String,String> map = System.getenv();
    47.         System.out.println(map.get("USERNAME"));//获取用户名
    48.         System.out.println(map.get("COMPUTERNAME"));//获取计算机名
    49.         System.out.println(map.get("USERDOMAIN"));//获取计算机域名
    50.     }
    51.     //得到计算机的ip地址和mac地址
    52.     public static void getConfig(){
    53.         try{
    54.             InetAddress address = InetAddress.getLocalHost();
    55.             NetworkInterface ni = NetworkInterface.getByInetAddress(address);
    56.             //ni.getInetAddresses().nextElement().getAddress();
    57.             byte[] mac = ni.getHardwareAddress();
    58.             String sIP = address.getHostAddress();
    59.             String sMAC = "";
    60.             Formatter formatter = new Formatter();
    61.             for (int i = 0; i < mac.length; i++) {
    62.                 sMAC = formatter.format(Locale.getDefault(), "%02X%s", mac[i],
    63.                         (i < mac.length - 1) ? "-" : "").toString();
    64.             }
    65.             System.out.println("IP:" + sIP);
    66.             System.out.println("MAC:" + sMAC);
    67.         }catch(Exception e){
    68.             e.printStackTrace();
    69.         }
    70.     }
    71.     //得到计算机的ip,名称,操作系统名称,操作系统版本
    72.     public static void Config(){
    73.         try{
    74.             InetAddress addr = InetAddress.getLocalHost();
    75.             String ip=addr.getHostAddress().toString(); //获取本机ip
    76.             String hostName=addr.getHostName().toString(); //获取本机计算机名称
    77.             System.out.println("本机IP:"+ip+"
    78. 本机名称:"+hostName);
    79.             Properties props=System.getProperties();
    80.             System.out.println("操作系统的名称:"+props.getProperty("os.name"));
    81.             System.out.println("操作系统的版本:"+props.getProperty("os.version"));
    82.         }catch(Exception e){
    83.             e.printStackTrace();
    84.         }
    85.     }
    86.     //其它的一些东西,会有用到的时候的
    87.     public static void all(){
    88.         Properties props=System.getProperties();
    89.         System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
    90.         System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
    91.         System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
    92.         System.out.println("Java的安装路径:"+props.getProperty("java.home"));
    93.         System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
    94.         System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
    95.         System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
    96.         System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
    97.         System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
    98.         System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name"));
    99.         System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version"));
    100.         System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
    101.         System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name"));
    102.         System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version"));
    103.         System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
    104.         System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
    105.         System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
    106.         System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
    107.         System.out.println("操作系统的名称:"+props.getProperty("os.name"));
    108.         System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
    109.         System.out.println("操作系统的版本:"+props.getProperty("os.version"));
    110.         System.out.println("文件分隔符:"+props.getProperty("file.separator"));
    111.         //在 unix 系统中是"/"
    112.         System.out.println("路径分隔符:"+props.getProperty("path.separator"));
    113.         //在 unix 系统中是":"
    114.         System.out.println("行分隔符:"+props.getProperty("line.separator"));
    115.        //在 unix 系统中是"/n"
    116.         System.out.println("用户的账户名称:"+props.getProperty("user.name"));
    117.         System.out.println("用户的主目录:"+props.getProperty("user.home"));
    118.         System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
    119.     }
    120.     public static void main(String[] args) {
    121.         getConfig();
    122.         Config();
    123.         all();
    124.     }
    125. }
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-18 10:36 , Processed in 0.341065 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表