java代码获取ip地址

public class IpTool {
    public static void main(String[] args) {
        IpTool ipTool=new IpTool();
        System.out.println(ipTool.getLocalIP());
    }
    /**
     *
     * 判斷當前操作是否Windows.
     *
     * @return true---是Windows操作系統
     */

    private  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 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;

    }
}
时间: 2024-10-10 13:06:52

java代码获取ip地址的相关文章

java如何获取IP地址

import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; public class GetMacIp { /** * @Title: main * @Description: TODO * @param :@param args * @retur

js获取IP地址多种方法实例教程

js获取IP地址方法总结 js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/<A class="infotextke

js获取IP地址的方法小结

s代码获取IP地址的三种方法,在js中取得客户端的IP地址. 原文地址:http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type="text/<A class="infotextkey" href="http://

js获取IP地址方法总结

js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址的方法一 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/<A class="infotextkey" href=

Java获取ip地址的几种方法

以下内容介绍下java获取ip地址的几种思路. 1.直接利用java.net.InetAddress类获取,不过这种方法只在windows环境下有效,在linux环境下只能获取localhost地址(即/etc/hosts文件内容) 代码如下: 1 import java.net.InetAddress; 2 3 /** 4 * This method works well in windows system. 5 * In Linux system it returns 127.0.0.1 t

java获取ip地址

有很多应用需要取得来访者的IP地址,比如防止未授权用户或恶意用户的访问等.J2EE的SERVLET标准接口javax.servlet.http.HttpServletRequest提供了getRemoteAddr()方法,用来取得来访者的IP地址. request.getRemoteAddr()这种方法在大部分情况下获得的IP都是有效的.但是在客户通过向代理软件就不能获取到客户端的真实IP地址了.经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也

Java如何根据主机名(域名)获取IP地址?

在Java编程中,如何根据主机名(域名)获取IP地址? 以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将主机名更改为指定的IP地址. package com.yiibai; import java.net.InetAddress; import java.net.UnknownHostException; public class HostSpecificIPAddress { public static void main(Strin

Java获取IP地址:request.getRemoteAddr()警惕(转)

原文出处:http://xiaoboss.iteye.com/blog/1181488 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr()

如何使用Java代码获取Android移动终端Mac地址

快下班了,现在总结一下如何使用Java代码获取Android移动终端Mac地址: 通过设备开通WiFi连接获取Mac地址是最可取的,代码如下: /** * 设备开通WiFi连接,通过wifiManager获取Mac地址 * * @author 高焕杰 */ public static String getMacFromWifi(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) con