java 实现获取主机名和IP
2014-04-17 20:45
316 查看
上网查了一下怎样在Java中获取本机的ip和主机名。
主要用到了java.net包下的InetAddress类,这个类就是对ip地址的抽象。
程序如下:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/24/5728fd3a43b41106eb329949ad34613d.png)
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import java.util.Set;
public class TestSystemProperties {
public static void main(String [] args){
InetAddress netAddress = getInetAddress();
System.out.println("host ip:" + getHostIp(netAddress));
System.out.println("host name:" + getHostName(netAddress));
Properties properties = System.getProperties();
Set<String> set = properties.stringPropertyNames(); //获取java虚拟机和系统的信息。
for(String name : set){
System.out.println(name + ":" + properties.getProperty(name));
}
}
public static InetAddress getInetAddress(){
try{
return InetAddress.getLocalHost();
}catch(UnknownHostException e){
System.out.println("unknown host!");
}
return null;
}
public static String getHostIp(InetAddress netAddress){
if(null == netAddress){
return null;
}
String ip = netAddress.getHostAddress(); //get the ip address
return ip;
}
public static String getHostName(InetAddress netAddress){
if(null == netAddress){
return null;
}
String name = netAddress.getHostName(); //get the host address
return name;
}
}
其中System.getProperties中包含很多的信息,包括:
Java中System.getProperty的使用
1,System.getProperty返回的数值,比如java.version,java.home,os.name,user.home以及user.dir等等.
2,getProperties
public static Properties getProperties()确定当前的系统属性.
首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法.这可能导致一个安全性异常.
将 getProperty(String) 方法使用的当前系统属性集合作为 Properties 对象返回.如果没有当前系统属性集合,则先创建并初始化一个系统属性集合.这个系统属性集合总是包含以下键的值: 键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是"/")
path.separator 路径分隔符(在 UNIX 系统中是":")
line.separator 行分隔符(在 UNIX 系统中是"/n")
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
系统属性值中的多个路径是用平台的路径分隔符分隔的.
注意,即使安全管理器不允许执行 getProperties 操作,它可能也会选择允许执行 getProperty(String) 操作.
System.getProperty()参数大全2007-05-10 09:01java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator ("/" on UNIX)
path.separator Path separator (":" on UNIX)
line.separator Line separator ("\n" on UNIX)
user.name User's account name
user.home User's home directory
user.dir User's current working directory
所有这些参数均转自网上
主要用到了java.net包下的InetAddress类,这个类就是对ip地址的抽象。
程序如下:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/24/5728fd3a43b41106eb329949ad34613d.png)
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import java.util.Set;
public class TestSystemProperties {
public static void main(String [] args){
InetAddress netAddress = getInetAddress();
System.out.println("host ip:" + getHostIp(netAddress));
System.out.println("host name:" + getHostName(netAddress));
Properties properties = System.getProperties();
Set<String> set = properties.stringPropertyNames(); //获取java虚拟机和系统的信息。
for(String name : set){
System.out.println(name + ":" + properties.getProperty(name));
}
}
public static InetAddress getInetAddress(){
try{
return InetAddress.getLocalHost();
}catch(UnknownHostException e){
System.out.println("unknown host!");
}
return null;
}
public static String getHostIp(InetAddress netAddress){
if(null == netAddress){
return null;
}
String ip = netAddress.getHostAddress(); //get the ip address
return ip;
}
public static String getHostName(InetAddress netAddress){
if(null == netAddress){
return null;
}
String name = netAddress.getHostName(); //get the host address
return name;
}
}
其中System.getProperties中包含很多的信息,包括:
Java中System.getProperty的使用
1,System.getProperty返回的数值,比如java.version,java.home,os.name,user.home以及user.dir等等.
2,getProperties
public static Properties getProperties()确定当前的系统属性.
首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法.这可能导致一个安全性异常.
将 getProperty(String) 方法使用的当前系统属性集合作为 Properties 对象返回.如果没有当前系统属性集合,则先创建并初始化一个系统属性集合.这个系统属性集合总是包含以下键的值: 键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是"/")
path.separator 路径分隔符(在 UNIX 系统中是":")
line.separator 行分隔符(在 UNIX 系统中是"/n")
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
系统属性值中的多个路径是用平台的路径分隔符分隔的.
注意,即使安全管理器不允许执行 getProperties 操作,它可能也会选择允许执行 getProperty(String) 操作.
System.getProperty()参数大全2007-05-10 09:01java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator ("/" on UNIX)
path.separator Path separator (":" on UNIX)
line.separator Line separator ("\n" on UNIX)
user.name User's account name
user.home User's home directory
user.dir User's current working directory
所有这些参数均转自网上
相关文章推荐
- Java 获取本机的ip和主机名
- java中代码实现获取IP
- Java 获取本机的ip和主机名
- Java 获取本机的IP与MAC地址实现详解
- javaweb -- 获取请求IP(附实现源码)
- Java获取来访者IP、浏览器版本、系统版本、主机名、Mac地址等信息
- java web在内网/局域网中访问,客户端主机ip获取
- java实现具有动态主机IP的域名解析
- 主机上有多个网卡用java指定获取某一个网卡ip的问题
- php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
- Silverlight实现获取本地IP/主机名
- java实现穿透代理获取客户端真实ip .
- Java实现获取客户端真实IP方法小结
- Java 获取本机的ip和主机名
- Java实现本机IP的修改和获取
- JAVA之——获取来访者IP、浏览器版本、系统版本、主机名、Mac地址等信息(插曲)
- 实现获取主机名称,IP地址的类 (java)
- java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据
- Java程序获取本机ip和主机名
- Java实现获取本机上ADSL的IP