0

为什么我将 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);
    }

}
4

7 回答 7

7

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

于 2013-06-26T12:32:10.807 回答
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 地址。

于 2013-06-26T12:37:39.460 回答
1

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

例如,我得到127.0.1.1是因为我的机器被调用koivu并且我的/etc/hosts:

127.0.1.1   koivu

如果我有其他 IP 地址,我会得到那个地址。

于 2013-06-26T12:37:39.290 回答
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();
        }
    }
}
于 2013-06-26T12:38:45.363 回答
1

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

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

于 2013-06-26T12:38:46.147 回答
1

你的本地主机是127.0.0.1. 查看InetAddress#getLocalHost()

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

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

根据维基百科

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

于 2013-06-26T12:33:24.750 回答
0

因为您正在从您的localhost

于 2013-06-26T12:37:48.480 回答