发新话题
打印

【求助】LINUX下如何获取本机IP???

【求助】LINUX下如何获取本机IP???

同样的一段代码,在Windows下编译,执行可以显示我的本机的ip地址210.45.246.183,在linux下编译,却始终返回127.0.0.1,请大家指明原因何在??

源代码如下(ww.java):
import java.net.*;
public  class ww
{
public static void main(String[] args)
{
    String addr = null;
       try
         {
          InetAddress destAddr = InetAddress.getLocalHost();
          addr = destAddr.getHostAddress();
        }
      catch (Exception e)
        {
          System.out.print("error");
        }
   System.out.print(addr);
}
}      

TOP

忘了说了,我用的是redhat9.0,   JDK1.4.2版本。
我试了InetAddress其它几个方法,在linux下始终返回127.0.0.1,不知原因何在。

请教!!!!!!!      

TOP

public static [url="file:///C:/Program%20Files/Common%20Files/Sun%20Soft/JavaSoft/docs/api/java/net/InetAddress.html"]InetAddress[/url][] getAllByName([url="file:///C:/Program%20Files/Common%20Files/Sun%20Soft/JavaSoft/docs/api/java/lang/String.html"]String[/url] host)
这个函数返回一个InetAddress的数组,不知道行不行      

TOP

是啊!我也遇到了这样的问题,使得我的程序在Linux下运行找不到主机.在windows下一切正常.
上面的方法我觉得应该可以,但现在没有Linux环境,试不了,那位试验过的帮忙告诉下结果!感谢!      

TOP

我试过了,3楼的方法同样行不通。不过感谢大家帮忙。

后来在linux下,试着改了“网络”里面那个“主机”的属性,将主机ip也改成和网卡ip一样的,则用上面的几个方法都可以正确获取本机的ip地址。

我就纳闷了:
为什么在linux下配了网卡的ip,还要去改主机的ip才可以用那些函数方法呢?
那么又如何用java获取linux下网卡的ip呢?多个网卡的时候又该如何获取每个ip??      

TOP

楼上的,这么长时间了这个问题解决了吗?我现在也遇到相同问题,请指教      

TOP

读取 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
用 什么StringTokenizer啊 indexof("IPADDR=") 找出 IPADDR=  后面的字符 210.51.xxx.xx 就可以了啊
我是听你说用 InetAddress 这个方法不行才这样做的

说白了我的方法就是用 java对文件操作~~~读出来然后tostring 分解找出那一行关键字后面的内容      

TOP

发新话题