`
chainhou
  • 浏览: 174667 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

InetAddress.getLocalHost().getHostAddress()获取的IP不正确

 
阅读更多
今天把在Windows下运行很正常的程序拿到Linux下测试,却出现了问题,经过检查发现是InetAddress.getLocalHost().getHostAddress() 取本地IP地址时出现了问题。因为期望得到的IP是222.xxx.xxx.xx,但实际打印出来的IP地址却是127.0.0.1。

查看 /etc/hosts 文件,里面有一条本机名和 222.xxx.xxx.xx这个 IP 对应的记录。把它注释掉,然后修改本机的主机名,又在 hosts 文件中加入主机名和222. xx.xx.xx的对应,问题解决了。

通过问题的解决方法,我们可以发现InetAddress.getLocalHost().getHostAddress() 方法找到本机 IP的实现方法——依靠本机的机器名去查询IP 地址,和 ping `hostname` 返回的 IP 地址是同一个,并不是 ipconfig 方法得到的 eth0 IP 地址。

getHostAddress() :返回类型是String,返回 IP 地址字符串(以文本表现形式)。

getLocalHost():返回类型是static InetAddress,返回本地主机
分享到:
评论

相关推荐

    java获取ipjava获取ipjava获取ipjava获取ipjava获取ip

    但是需要注意的是,`getLocalHost()`方法获取的是主机的默认接口(通常是回环地址127.0.0.1),如果需要获取所有网络接口的IP地址,可以使用`InetAddress.getAllByName()`方法: ```java public static void ...

    Java高级程序设计:第14章-基于Socket的网络编程.pptx

    InetAddress localAddr = InetAddress.getLocalHost();//获得本机InetAddress System.out.println(localAddr.getHostName());//输出主机名 System.out.println(localAddr.getHostAddress());//输出IP地址 // 通过...

    java 获取计算机名与IP地址

    在上述代码中,`InetAddress.getLocalHost()`方法返回一个表示当前主机的`InetAddress`对象,然后通过调用其`getHostName()`方法来获取计算机名。 接下来,我们讨论如何获取IP地址。IP地址是互联网上设备的唯一标识...

    获取IP地址实例代码

    System.out.println("IP地址: " + InetAddress.getLocalHost().getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } } ``` 3. **JavaScript**: 在浏览器环境中,由于同源...

    获取本机IP和主机名方法

    在IT领域,网络通信是不可或缺的一部分,而获取本机的IP地址和主机名则是网络通信的基础。本篇文章将深入探讨如何在不同的操作系统和编程语言环境下实现这一功能。 首先,主机名是一个标识符,用于在网络中唯一标识...

    getlocalIp_获取本地IP工具java_服务器_

    在Java编程环境中,获取本地IP地址是一个常见的需求,特别是在服务器端开发中,这可能涉及到网络通信、服务定位等多种场景。...在服务器开发中,正确获取和使用本地IP是进行网络通信的基础,也是系统能正常运行的关键。

    获得本机ip地址的例子

    这段Java代码通过`InetAddress.getLocalHost()`获取本地主机的`InetAddress`对象,然后调用`getHostAddress()`方法得到IP地址。 对于.NET框架(C#)开发者,可以使用`System.Net.NetworkInformation`命名空间中的`...

    获取本机IP地址的代码

    - `InetAddress.getLocalHost().getHostAddress()`:Java代码通过`getLocalHost()`获取本地主机的`InetAddress`对象,再调用`getHostAddress()`方法得到IP地址。 7. **多网络环境**: - 当计算机同时连接了多个...

    JAVA发送邮件和获取ip地址

    for (InetAddress address : InetAddress.getAllByName(null)) { // 获取所有网络接口的IP地址 if (!address.isLoopbackAddress()) { System.out.println(address.getHostAddress()); // 输出非回环接口的IP地址 ...

    Get_PC_Info.rar_获取IP地址

    例如,`InetAddress.getLocalHost()`方法可以返回本地主机的InetAddress对象,从而获取到IP地址。但需要注意的是,如果机器上有多个网络接口,该方法可能返回的是首选的IPV4地址或IPV6地址,具体取决于系统配置。 ...

    Java中获取IP地址,主机名称,网卡地址

    Java 中获取 IP 地址、...我们可以使用 InetAddress 类的 getLocalHost() 方法来获取本地主机的 IP 地址,并使用 getHostName() 方法来获取主机名称。获取网卡地址需要使用 Runtime 类的 exec() 方法来执行系统命令。

    用java获取IP地址

    为了避免这种情况,可以使用`InetAddress.getLocalHost()`方法来获取本机的IP地址。 ##### 示例代码 ```java import java.net.InetAddress; import java.net.UnknownHostException; public class NsLookup { ...

    获取本地IP地址的小程序

    可以使用`getLocalHost()`方法获取本地主机的`InetAddress`对象,然后调用`getHostAddress()`获取IP地址。 ```java import java.net.InetAddress; import java.net.UnknownHostException; public class GetIP { ...

    获取手机ip

    InetAddress inetAddress = InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()); return inetAddress.getHostAddress(); } catch (UnknownHostException e) { return "Failed to get IP ...

    java获取本机IP地址

    可以通过`getLocalHost()`方法获取本机主机名,然后调用`getHostAddress()`方法得到对应的IP地址。示例代码如下: ```java import java.net.InetAddress; import java.net.UnknownHostException; public class Get...

    Android开发之InetAddress基础入门简介与源码实例

    - `getLocalHost()`:这个方法用于获取本地主机的InetAddress对象,可以用来获取设备的IP地址和域名。 2. **获取域名**: - `getHostName()`:返回InetAddress对象所代表的主机名。例如,如果从IP地址创建了一个...

    获取Ip地址代码

    return data.ip; } getIpAddress().then(ip => console.log(ip)); ``` 4. **C#获取IP地址** 在C#中,我们同样可以使用`System.Net`命名空间的`Dns`类来获取IP地址: ```csharp using System.Net; public static...

    InetAddress和URL

    - **获取本地主机的IP地址**:`getLocalHost()` 方法返回表示当前主机IP地址的`InetAddress`对象。 - 示例代码: ```java InetAddress localAddress = InetAddress.getLocalHost(); System.out.println(local...

    java实验7 网络编程

    * InetAddress.getHostAddress():获取主机的IP地址。 * InetAddress.getHostName():获取主机的名称。 二、 Socket和ServerSocket类 Socket和ServerSocket类是Java中用于实现网络通信的类。Socket类用于实现...

    java获取内网的所有IP地址.doc

    可以使用 InetAddress.getLocalHost() 方法获取本机的 InetAddress 对象,然后使用 getHostAddress() 方法获取本机的 IP 地址。 2. String 操作:Java 中的 String 类提供了多种操作方法,例如 lastIndexOf() 方法...

Global site tag (gtag.js) - Google Analytics