通过jjava代码, 获取Linux中ip地址和网关,及dns
时间: 2024-03-01 08:53:42 浏览: 57
用java获取IP地址
可以使用Java代码来获取Linux中的IP地址、网关和DNS信息。以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class NetworkInfo {
public static void main(String[] args) {
try {
String ip = getIPAddress();
String gateway = getGateway();
String[] dns = getDNS();
System.out.println("IP Address: " + ip);
System.out.println("Gateway: " + gateway);
System.out.print("DNS: ");
for (String server : dns) {
System.out.print(server + " ");
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getIPAddress() throws IOException {
Process process = Runtime.getRuntime().exec("ifconfig | grep inet | awk '{print $2}' | cut -d':' -f2");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
return line;
}
public static String getGateway() throws IOException {
Process process = Runtime.getRuntime().exec("ip route | grep default | awk '{print $3}'");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
return line;
}
public static String[] getDNS() throws IOException {
Process process = Runtime.getRuntime().exec("cat /etc/resolv.conf | grep nameserver | awk '{print $2}'");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line);
output.append(" ");
}
return output.toString().trim().split(" ");
}
}
```
该代码使用 `Runtime.exec()` 方法执行系统命令,并使用 `BufferedReader` 读取命令输出。 `getIPAddress()` 方法获取IP地址, `getGateway()` 方法获取网关, `getDNS()` 方法获取DNS服务器的IP地址。注意,这些命令在Linux系统上执行,所以该代码只能在Linux系统上运行。
阅读全文