Gradle 得到 local ip

2019-02-28  本文已影响0人  Yellowtail

前言

为什么会产生这个想法呢?
我们有一个 SNAPSHOT 的快照包,同事们都可以在自己的电脑上进行发布
但是偶尔会出现 坏包,不知道是谁发布的,
所以想在快照包里 加上 当前电脑的局域网ip,
这样出现问题,看下ip,就知道是哪个同事的电脑出了问题,再着手解决即可
(当然了,最后只知道了如何得到ip, 如何改造快照包依然不清楚)

代码实现

网上搜了下,在这里发现了答案

代码如下

// Get the ip address by interface name
def getIP() {
    InetAddress result = null;
    Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
    while (interfaces.hasMoreElements()) {
        Enumeration<InetAddress> addresses = interfaces.nextElement().getInetAddresses();
        while (addresses.hasMoreElements()) {
            InetAddress address = addresses.nextElement();
            if (!address.isLoopbackAddress()) {
                if (address.isSiteLocalAddress()) {
                    return address.getHostAddress();
                } else if (result == null) {
                    result = address;
                }
            }
        }
    }
    return (result != null ? result : InetAddress.getLocalHost()).getHostAddress();
}

build.gradle 里随便写个 task

task hi() {    
    println "getLocalIp is " + getIP()
}

执行一下

gradle hi

> Configure project :
getLocalIp is 192.168.2.145
上一篇下一篇

猜你喜欢

热点阅读