获取IP地址并将其存储在属性中 - ant

时间:2014-10-21 07:13:07

标签: ant properties ip

我对Ant很新,我找到了这段代码来获取本地IP地址:

<target name="if_windows" depends="checkos" if="isWindows">
    <exec executable="cmd" outputproperty="myHostName">
        <arg value="/c" />
        <arg value="hostname"/>
    </exec>

    <exec executable="cmd" outputproperty="infraServerIPTemp" >
        <arg value="/c"/>
        <arg value="FOR /f &quot;tokens=1 delims=:&quot; %d IN ('ping ${myHostName} -4 -n 1 ^| find /i &quot;reply&quot;') DO FOR /F &quot;tokens=3 delims= &quot; %g IN (&quot;%d&quot;) DO echo infraServerIP=%g > myIP.properties"/>
    </exec>

    <property file="myIP.properties"/>
</target>

现在问题是我已经尝试了几个小时才能将它放入属性而不是属性文件中。但我无法完成任务。有谁可以帮助我一个人吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

尝试:

<target name="Foo2">
    <property environment="env"/>
    <property name="env.HOSTNAME" value="${env.COMPUTERNAME}"/><!--On Windows the hostname is in the environment variable 'COMPUTERNAME', on Linux the environment variable is 'HOSTNAME'-->
    <hostinfo prefix="host" host="${env.HOSTNAME}" />
    <echo>${host.ADDR4}</echo>
</target>

我不确定是否有一种简单的方法 - IP可能取决于您的Internet适配器。在我的情况下,我有2个虚拟addapter,这个解决方案没有工作。

检查How to get fully qualified hostname using Ant主题