JAVA程序执行linx命令进行自定义参数域名解析和测试连接服务器

一、使用的API说明

Runtime.getRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的入口。  

process这个类是一个抽象类,封装了一个进程,方法如下:

Process exec(String command) 
          在单独的进程中执行指定的字符串命令。
 Process exec(String command, String[] envp) 
          在指定环境的单独进程中执行指定的字符串命令。
 Process exec(String command, String[] envp, File dir) 
          在有指定环境和工作目录的独立进程中执行指定的字符串命令。
 Process exec(String[] cmdarray) 
          在单独的进程中执行指定命令和变量。 
 Process exec(String[] cmdarray, String[] envp) 
          在指定环境的独立进程中执行指定命令和变量。 
 Process exec(String[] cmdarray, String[] envp, File dir) 
          在指定环境和工作目录的独立进程中执行指定的命令和变量。
其中:
command:一条指定的系统命令。

envp:环境变量字符串数组,其中每个环境变量的设置格式为name=value;如果子进程应该继承当前进程的环境,则该参数为null。

dir:子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为null。

cmdarray:包含所调用命令及其参数的数组

国内公共DNS服务器地址:

1、DNSPod Public DNS:

114.114.114.114
119.29.29.29

2、阿里公共DNS服务器IPv4地址:

223.5.5.5

3、百度公共DNS服务器IPv4地址:

180.76.76.76

4、oneDNS

117.50.11.11

5、DNSpai Public DNS

中国电信/移动宽带 101.226.4.6 

中国联通宽带 123.125.81.6 

6、CNNIC sDNS

中国互联网络信息中心公共DNS服务器IPv4地址

1.2.4.8

7、CFIEC Public DNS

中国下一代互联网工程中心公共DNS服务器IPv6地址

240c::6666

备用地址240c::6644

9、Google Public DNS

公共DNS服务器IPv4地址

首选地址8.8.8.8

备用地址8.8.4.4

公共DNS服务器IPv6地址

首选地址2001:4860:4860::8888

备用地址2001:4860:4860::8844

二、JAVA程序

1、域名解析

命令cmd:传入参数第一个参数是命令,后边全是参数

private   String filePath="/home/test/t.sh"; 
	public   String executeLinuxCmd(String ip,String domain) {
		String cmdd=filePath;
	    //传入参数第一个参数是命令,后边全是参数
		String[] cmd={"sh",cmdd,ip,domain};
		Runtime run = Runtime.getRuntime();
		try {
			Process process = run.exec(cmd);
			InputStream in = process.getInputStream();
			BufferedReader bs = new BufferedReader(new InputStreamReader(in));
			StringBuffer out = new StringBuffer();
			String line;
			while ((line = bs.readLine()) != null) {
				//执行结果加上回车
				out.append(line).append("\n");
			}
			System.out.println("job result ===>[" + out.toString() + "]");
			in.close();
			// process.waitFor();
			process.destroy();
			return out.toString();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

linx脚本:

测试程序:

        String result = test.executeLinuxCmd("114.114.114.114", "www.baidu.com");
		System.err.println("结果====>:"+result);
		String[] results = result.split("\n");
		ArrayList<String> newResult = new ArrayList<>();
		//重新组装
		for (int i = 0; i < results.length; i++) {
			//规则校验
			if (RegexUtil.checkIp(results[i])==true) {
				newResult.add(results[i]);
			}
		}
		//打印结果
		for (String newResultss : newResult) {
			System.err.println("ip==>"+newResultss);
		}

结果;

2、测试网是否能够连接服务器

程序;

        //传入参数第一个参数是命令,后边全是参数
		String[] cmd={"telnet",ip,port};
		Runtime run = Runtime.getRuntime();
		try {
			Process process = run.exec(cmd);
			InputStream in = process.getInputStream();
			BufferedReader bs = new BufferedReader(new InputStreamReader(in));
			StringBuffer out = new StringBuffer();
			String line;
			while ((line = bs.readLine()) != null) {
				//执行结果加上回车
				out.append(line).append("\n");
			}
			System.out.println("job result ===>[" + out.toString() + "]");
			in.close();
			// process.waitFor();
			process.destroy();
			return out.toString();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;

测试程序;

String result = test.executeLinuxCmd("192.168.1.69", "28199");
System.err.println("结果====>:"+result);

结果:

如上结果则网通

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值