加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Java获取主机IP地址,自动区分Windows和Linux

发布时间:2021-07-06 05:28:27 所属栏目:大数据 来源: https://blog.csdn.net/wts
导读:?import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class OSUtil { ?/** ? * 判断当前操作是否Windows. ? * ? * @return true---是Windows操作系统 ? */ ?public static boolean isWindowsOS(){ ??boo

?import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class OSUtil {

?/**
? * 判断当前操作是否Windows.
? *
? * @return true---是Windows操作系统
? */
?public static boolean isWindowsOS(){
??boolean isWindowsOS = false;
??String osName = System.getProperty("os.name");
??if(osName.toLowerCase().indexOf("windows")>-1){
???isWindowsOS = true;
??}
??return isWindowsOS;
?}
?
?/**
? * 获取本机IP地址,并自动区分Windows还是Linux操作系统
? * @return String
? */
?public static String getLocalIP(){
??String sIP = "";
??InetAddress ip = null;?
??try {
???//如果是Windows操作系统
???if(isWindowsOS()){
????ip = InetAddress.getLocalHost();
???}
???//如果是Linux操作系统
???else{
????boolean bFindIP = false;
????Enumeration<NetworkInterface> netInterfaces = (Enumeration<NetworkInterface>) NetworkInterface
??????.getNetworkInterfaces();
????while (netInterfaces.hasMoreElements()) {
?????if(bFindIP){
??????break;
?????}
?????NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
?????//----------特定情况,可以考虑用ni.getName判断
?????//遍历所有ip
?????Enumeration<InetAddress> ips = ni.getInetAddresses();
?????while (ips.hasMoreElements()) {
??????ip = (InetAddress) ips.nextElement();
??????if( ip.isSiteLocalAddress()??
???????????????? && !ip.isLoopbackAddress()?? //127.开头的都是lookback地址
???????????????? && ip.getHostAddress().indexOf(":")==-1){
???????? ?bFindIP = true;
???????????? break;??
???????? }
?????}

????}
???}
??}
??catch (Exception e) {
???e.printStackTrace();
??}?

??if(null != ip){
???sIP = ip.getHostAddress();
??}
??return sIP;
?}
?//如果不能满足要求,请留言并说明情况
?public static void main(String[] args) {
??String serverIP = OS.getLocalIP();
??System.out.println("serverIP:::" + serverIP);
?}
}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读