java 默认网关,java 获得默认网关 和 子网掩码 本机
Java codepublic static void main(String[] args) throws IOException {
String os = System.getProperties().getProperty("os.name"); //得到操作系统 xp 为"Windows XP" 其他的的楼主自己去试试
Process pro = Runtime.getRuntime().exec("ipconfig");
BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream()));
List rowList = new ArrayList();
String temp;
while((temp = br.readLine()) != null){
rowList.add(temp );
}
for (String string : rowList) {
String sm= os.equals("Windows XP") ? "Subnet Mask" : "子网掩码" ; //这里只判断了win7个xp
if(string.indexOf("Subnet Mask") != -1){
Matcher mc = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}").matcher(string);
if(mc.find()){
System.out.println("子掩码:" + mc.group());
}else{
System.out.println("子掩码为空");
}
};
String dg = os.equals("Windows XP") ? "Default Gateway" : "默认网关" ; //这里只判断了win7个xp
if(string.indexOf("Default Gateway") != -1){
Matcher mc = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}").matcher(string);
if(mc.find()){
System.out.println("默认网关:" + mc.group());
}else{
System.out.println("默认网关为空");
}
return;
};
}
}
------解决方案--------------------探讨
用8楼的结果 我子网掩码是 255.255.255.0 得到的却是255.255.255.255
------解决方案--------------------
使用java.lang.Process类啊
将"ipconfig /all"传进去
Java code/**
* 获取linuxShell命令结果.
* @param cmd 指令
* @return 指令结果
*/
public String getRuntimeExec(final String cmd) {
BufferedReader bufferedReader = null;
Process process = null;
StringBuffer sb = new StringBuffer();
try {
String buffer;
//System.out.println(cmd);
process = Runtime.getRuntime().exec(cmd);
// 得到结果
bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((buffer = bufferedReader.readLine()) != null) {
sb.append(buffer + "\n");
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
return sb.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("execute failed.");
return null;
} finally {
// 清理
try {
if (bufferedReader != null) {
bufferedReader.close();
bufferedReader = null;
}
if (process != null) {
process.destroy();
process = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
------解决方案--------------------
也来弄一段:,只能得到掩码Java codepublic static void main(String args[]) {
try {
for (Enumeration nis = NetworkInterface.getNetworkInterfaces();
nis != null && nis.hasMoreElements();) {
NetworkInterface ni = nis.nextElement();
System.out.println("网络适配器:" + ni.getDisplayName());
for (InterfaceAddress ifAddr : ni.getInterfaceAddresses()) {
System.out.println("IP:" + ifAddr.getAddress().getHostAddress());
System.out.println("Mask:" + getMask(ifAddr.getNetworkPrefixLength()) );
//System.out.println("Borad:"+ ifAddr.getBroadcast().getHostAddress());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 返回指定长度的掩码的字符串,如,长度为8的掩码,返回255.0.0.0;长度为24的掩码,返回255.255.255.0
* 注:只适用于IPV4
* @param maskLength 掩码长度
* @return
*/
private static String getMask(int maskLength){
StringBuffer maskStr = new StringBuffer();
int mask = 0xFFFFFFFF << 32 - maskLength ;
for(int i = 3 ;i >= 0;i--){
maskStr.append( ( mask >> (8*i) ) & 0xFF);
if(i>0){
maskStr.append(".");
}
}
return maskStr.toString();
}
java 默认网关,java 获得默认网关 和 子网掩码 本机相关推荐
- java snmp全面开发解决方案(web service snmp网关、代理snmp网关、网络拓扑发现、SNMP数据采集等)...
ObjectSNMP是一个面向对象的SNMP开发组件,与关系数据库流行的O-R Mapping技术类似,实现了Object到SNMP MIB的操作映射(简称O-M Mapping),系统提供了Java ...
- linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- Java-CentoOS 7安装JDK8 (rpm格式 和 tar.gz格式) 多JDK设置默认的Java 版本
文章目录 下载JDK 安装 rpm格式的 JDK Step1 rpm -ivh 安装 Step 2 配置 & 刷新 /etc/profile 安装 tar.gz格式的JDK 多个JDK共存时, ...
- JAVA之private修饰成员方法默认是final型的?
Java之private修饰成员方法默认是final型的? private修饰的成员方法默认是final型的? 用fianl声明的成员方法是最终方法,最终方法不能被子类覆盖(重写) 从表面上看这个命题 ...
- Java 中 Boolean 和 boolean的默认值和修改默认值
默认值 boolean 是 Java 的基本数据类型,默认值是false: Boolean 是 Java 的一个类,默认值是 null 使用推荐 根据阿里巴巴开发手册,在字段中推荐使用Boolean作 ...
- java二进制文件下载到浏览器默认路径
java二进制文件下载到浏览器默认路径 java二进制文件下载到浏览器默认路径.当然可以下载到指定系统指定路径但是作用不大. 下面是通过调用的开放接口拿到的一个FileBinary二进制文件,输出流输 ...
- Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法
Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署 ...
- java string设置编码_详解Java中String类型与默认字符编码
为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...
- 网关,默认网关,自动网关,路由,网关与路由器的关系
本文内容整理自网络.包含的概念有:网关,默认网关,自动网关,路由,网关与路由器的关系. ------网关 网关实质上是一个网络通向其他网络的IP地址. 比如有网络A和网络B, 网络A的IP地址范围为& ...
- java 注解值_java 注解默认值操作
我就废话不多说了,大家还是直接看代码吧~ package com.zejian.annotationdemo; import java.lang.annotation.ElementType; imp ...
最新文章
- TensorFlow官方入门实操课程-一个神经元的网络(线性曲线预测)
- 【转】一步一步教你远程调用EJB
- “差评”的学位论文都有哪些特点?
- 用计算机来猜密码,画圈圈也能解锁电脑?我猜你一定不知道!
- 主动模式下FTP的详细工作过程
- 在下层捕获上层抛出的异常
- 哈工大2020春计算方法实验报告
- 5W1H 和 鱼骨分析法
- 微信支付商户号和企业付款到零钱开通方法
- ubuntu20.04设置静态IP地址
- 向量积的坐标运算公式推导_向量外积的直接证明与直观解释,并以此证明正弦公式...
- C语言算法题:一只小蜜蜂...
- 简单介绍下linux下的中断(interrupt)
- Oracle----Orcacle简介
- 怎么在线对图片进行压缩不改变清晰度
- 联合国 ITU 立项成功,DevOps 标准开启国际化模式!
- uni-app返回上一层页面后数据刷新重置解决办法,uni-app页面不刷新,强制刷新页面方法!
- 精妙绝伦!阿里资深架构师撰写这份:并发编程,可谓“独具匠心”
- nginx iis 502 错误处理
- c生万物之初识c语言
热门文章
- wxWidgets:编写应用程序的快速指南
- boost::yap::value相关的测试程序
- Boost.MultiIndex 使用散列索引的示例
- boost::mpi模块指针序列化测试
- boost::mp11::mp_count_if相关用法的测试程序
- boost::intrusive::avl_set用法的测试程序
- boost::format模块异常处理的测试程序
- ITK:在图像区域上运行图像过滤器
- VTK:图片之RTAnalyticSource
- C语言侏儒排序Gnome sort 算法(附完整源码)