在 Java 中获取“外部”IP 地址

2024-02-23

我不太确定如何获取机器的外部 IP 地址,因为网络外部的计算机会看到它。

我的以下 IPAddress 类仅获取计算机的本地 IP 地址。

public class IPAddress {

    private InetAddress thisIp;

    private String thisIpAddress;

    private void setIpAdd() {
        try {
            InetAddress thisIp = InetAddress.getLocalHost();
            thisIpAddress = thisIp.getHostAddress().toString();
        } catch (Exception e) {
        }
    }

    protected String getIpAddress() {
        setIpAdd();
        return thisIpAddress;
    }
}

我不确定您是否可以从本地计算机上运行的代码中获取该 IP。

但是,您可以构建在网站上运行的代码(例如在 JSP 中),然后使用返回请求来源 IP 的内容:

request.getRemoteAddr()

或者简单地使用现有的服务来执行此操作,然后解析服务的答案以找出 IP。

使用 AWS 等网络服务

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

URL whatismyip = new URL("http://checkip.amazonaws.com");
BufferedReader in = new BufferedReader(new InputStreamReader(
                whatismyip.openStream()));

String ip = in.readLine(); //you get the IP as a String
System.out.println(ip);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中获取“外部”IP 地址 的相关文章

随机推荐

  • 是否可以在 PlantUML 中对参与者进行分组?

    我想要一个围绕几个参与者的盒子 表明他们是一个实体的一部分 如何在 PlantUML 中做到这一点 您可以将参与者 装箱 如 plantuml 网站上所示 摘录如下 startuml box Internal Service LightBl
  • 无法使用 VS 2010 启动 SOS.dll

    我正在尝试启动SOS dll from Visual Studio 2010 旗舰版 我收到以下错误 命令期间出错 IDebugClient 要求未实现的接口 命令期间出错 异常 c0000005 发生在 1BC4EF9E 我还为该项目启用
  • 我在 IE 中遇到语法错误,但在 Chrome 中却没有

    所以我有这段代码 一个函数 可以在 Google Chrome Fire Fox 中运行 但不能在 IE 中运行 如果我评论这一行 一切都会运行良好 除了该行至关重要 我有一个名为 ReadCookie 的函数 它基本上只是将 cookie
  • jqgrid:拖放多行

    如何使用 jqgrid 拖放多行 即我可以拖动多于一行吗 我怎么知道这在 jqGrid 中是不可能的 jQuery UI 的可排序功能是否支持它 请参阅http jqueryui com demos sortable http jquery
  • Html:

    标记的正确顺序是什么?

    根据标准 以下哪一项 如果有的话 是正确的 a href p Link Description p a p a href Link Description a p 我知道它们的功能相同 但这是一个最佳实践 标准问题 这也适用于 ul ol
  • C中通过套接字发送文件

    我在学校接到一个任务 用C语言 针对Linux 编写一个FTP程序 我很快就可以使用所有基本功能 ls cd 但是我在文件传输部分遇到了麻烦 我使用 sendfile 通过套接字发送文件 如下所示 int fd open temp O RD
  • postgres hstore同时存在和不存在[重复]

    这个问题在这里已经有答案了 我在远程服务器上设置了 Rails 应用程序并创建了 hstore 扩展 sudo u postgres psql CREATE EXTENSION hstore 然后 我部署了应用程序的迭代 该迭代在 post
  • 如何使用 postgresql 验证 Rails 中的重叠时间

    我有一个Event model具有start at时间和end at我的日程应用程序中的时间 我想在保存之前验证重叠时间 我创建了我的 Rails 应用程序Cloud9 我的视图图像如下 Day1 07 00 07 20 event1 10
  • JMESpath 表达式,用于按属性过滤对象并返回设置了此属性的对象名称列表

    是否可以编写 JMESPath 表达式来返回设置了特定子属性值的对象名称列表 在下面的示例中 我想获取所有主机名的列表 其中文件存在 stat 存在设置为 true 我的目标是使用 Ansible hostvars 结构来获取存在特定文件的
  • 相当于 .NET 中的 Windows 错误代码

    Microsoft 为 Windows 提供了一系列标准化错误代码 http msdn microsoft com en us library ms681381 VS 85 aspx 当适用时 我发现它们可以在我自己的应用程序中参考 而不是
  • 如何比较相似的代码库?

    我们有几个基于相同代码库构建的 C 项目 它们之间有很多相似之处和共同的代码 但它们是独立开发的 来源未以任何方式共享 即使底层代码没有改变 并且个别行将被调整 更改和替换 类和文件也将被重命名 我希望能够比较不同的代码库并找出有多少代码仍
  • 理解 jQuery 中的 $.proxy()

    From docs http api jquery com jquery proxy 我明白那个 proxy 会改变作为参数传递的函数的范围 有人可以更好地向我解释一下吗 我们为什么要这样做 它最终要做的是确保this函数中将是您想要的值
  • 从 Arrays.asList 返回的列表是否保持与原始数组集合相同的顺序?

    我有一个 ArrayList 我对其进行了多次迭代 并且看起来它没有保持迭代的顺序 我更深入地研究 似乎为这次迭代编写的自定义迭代器标记 由其他人 首先获取传入的 ArrayList 并在迭代之前使用 Arrays asList 将其桥接到
  • 如何从内存字节创建“假”dart:io 文件?

    我有一个 blob 的内存字节 但我想要处理这个 blob 的 API 只接受 dart io File 对象 有没有办法创建一个 假 dart io File 简单地包装我的内存字节 以便我可以将这个 假 文件传递给我的API 假设文件系
  • 在 C++ 程序上使用 mpicc 链接失败

    我正在运行 Ubuntu 11 04 64 位 我已经安装了 OpenMPI 我正在尝试构建以下代码 这是 Gropp Lusk Skjellum 所著的 Using MPI 一书中测试问题的片段 include
  • 在java中如何拥有具有唯一键的HashMap?

    在 Java 中如何获得具有唯一键的 HashMap 或者甚至在 HashMap 中拥有唯一的键是否有意义 或者默认情况下键是唯一的 我是新手 谢谢 哈希映射键是唯一的 添加重复的密钥 然后它将被覆盖 HashMap hm new Hash
  • PE文件中的MZ签名有什么用?

    我正在开发一个程序 它将解析 PE 对象以获取各种信息 但阅读规范后 我无法找出为什么存在 MZ 字节 因为我无法在这 2 个字节应该代表的机器类型列表中找到它 谁能澄清一下吗 MZ 签名是 MS DOS 可重定位 16 位 EXE 格式使
  • 即时搜索算法

    哪种类型的算法对于搜索正在搜索的内容最快 我意识到这已经很接近于问谷歌即时搜索是如何工作的了 但我不是算法专家 而且我对它们越来越感兴趣 像这样的搜索是使用后缀树或类似的东西完成的吗 我想我只是对查询小字符串感兴趣 而不是像谷歌那样查询大量
  • 将 HttpClient 与 SOAP 结合使用

    我一直在尝试使用 Net Framework 4 7 中的 HTTPClient 对象来创建简单的 SOAP 请求 我已经使用了 Postman 中的参数 它工作得很好 这是我的代码 string url http webservices
  • 在 Java 中获取“外部”IP 地址

    我不太确定如何获取机器的外部 IP 地址 因为网络外部的计算机会看到它 我的以下 IPAddress 类仅获取计算机的本地 IP 地址 public class IPAddress private InetAddress thisIp pr