- 1、JAVA怎麼獲取IP地址
- 2、java如何查詢本機ip地址和mac地址
- 3、java中獲取本地IP地址
這個是獲取不到的,因為有代理、埠映射等等轉發情況的存在。為什麼不保存相對路徑/域名/或者在伺服器上某個配置文件中配置域名/資料庫中一個表/資料庫中某個欄位保存當前伺服器的ip地址呢?
Java中可以使用程序來獲取本地ip地址和mac地址,使用InetAddress這個工具類,示例如下:
import java.net.*;
public class NetInfo {
public static void main(String[] args) {
new NetInfo().say();
}
public void say() {
try {
InetAddress i = InetAddress.getLocalHost();
System.out.println(i); //計算機名稱和IP
System.out.println(i.getHostName()); //名稱
System.out.println(i.getHostAddress()); //只獲得IP
}
catch(Exception e){e.printStackTrace();}
}
}
也可以通過命令行窗口來查看本地ip和mac地址,輸入命令:ipconfig。
方法如下:
方法一,使用CMD命令:
public static String getLocalIPForCMD(){
StringBuilder sb = new StringBuilder();
String command = “cmd.exe /c ipconfig | findstr IPv4”;
try {
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line = br.readLine()) != null){
line = line.substring(line.lastIndexOf(“:”)+2,line.length());
sb.append(line);
}
br.close();
p.destroy();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
方法二,使用Java方法:
public static String getLocalIPForJava(){
StringBuilder sb = new StringBuilder();
try {
EnumerationNetworkInterface en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface intf = (NetworkInterface) en.nextElement();
EnumerationInetAddress enumIpAddr = intf.getInetAddresses();
while (enumIpAddr.hasMoreElements()) {
InetAddress inetAddress = (InetAddress) enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() !inetAddress.isLinkLocalAddress()
inetAddress.isSiteLocalAddress()) {
sb.append(inetAddress.getHostAddress().toString()+”\n”);
}
}
}
} catch (SocketException e) { }
return sb.toString();
}
原創文章,作者:J34RK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126781.html