我想知道网络中机器的IP地址。为什么我得到127.0.0.1?

时间:2013-06-26 12:30:54

标签: java

为什么我将IP地址设为127.0.0.1

这是我用于获取IP地址的示例程序

package com;

import java.net.InetAddress;    
import org.apache.log4j.Logger;

public class Test {
    private static final Logger logger = Logger.getLogger(Test.class);

    public static void main(String args[]) throws Exception {
        String ips = InetAddress.getLocalHost().getHostAddress().trim();
        System.out.println(ips);
    }

}

7 个答案:

答案 0 :(得分:7)

这是本地服务器(= localhost)的IP地址。当您访问运行程序的计算机时使用它。

答案 1 :(得分:3)

Enumeration e=NetworkInterface.getNetworkInterfaces();

while(e.hasMoreElements())
{
    NetworkInterface n=(NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while(ee.hasMoreElements())
    {
        InetAddress i= (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}

您可以使用上面的代码获取您机器的IP地址。

请参阅Source

答案 2 :(得分:1)

您的本地主机是127.0.0.1。请参阅InetAddress#getLocalHost()

  

返回本地主机的地址。这是通过从系统中检索主机名,然后将该名称解析为InetAddress来实现的。

明确地说,localhost是分配给环回网络接口的地址的标准主机名。转换为IP地址,localhost始终指定为127.0.0.1。

根据Wikipedia

  

在计算机网络中,localhost表示此计算机。它是计算机软件和用户可通过其环回网络接口访问计算机自己的网络服务的主机名。在大多数计算机系统上,localhost解析为地址 127.0.0.1 (这是最常用的IPv4环回地址)和IPv6环回地址 :: 1。 < / p>

答案 3 :(得分:1)

您的系统上有127.0.0.1,因为这是机器名称解析的内容。 在其他系统上,您可能会获得不同的地址。

例如,我得到127.0.1.1,因为我的机器被称为koivu而我的/etc/hosts中有这一行:

127.0.1.1   koivu

如果我有其他IP地址,我会改为获得该地址。

答案 4 :(得分:1)

这个给ip而不是localhost地址

import java.net.*;
import java.io.*;

public class GetIPAddress {

    public static void main(String[] args) {
        try {
            InetAddress thisIp = InetAddress.getLocalHost();
            System.out.println("IP:" + thisIp.getHostAddress());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

答案 5 :(得分:1)

例如,这将返回我的LAN IP地址:System.out.println(InetAddress.getLocalHost().getHostAddress());

您可能有多个IP地址,这会导致您的麻烦。

答案 6 :(得分:0)

因为您正在通过localhost

访问您的应用程序