当前位置: 首页 > 面试题库 >

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

苍嘉澍
2023-03-14
问题内容

我不太确定如何获取计算机的外部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等Web服务

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);


 类似资料:
  • 问题内容: 该代码用于返回我的本地IP地址为192.xxx.x.xxx,但现在它返回127.0.0.1。请帮助我为什么相同的代码返回不同的值。在Linux OS上需要注意些什么吗? 问题答案: 127.0.0.1是回送适配器-这是对(有些恶意的)问题“我的IP地址是什么?”的正确答案。 问题是该问题有 多个 正确答案。 编辑:的文档说: 如果有安全管理器,则使用本地主机名并以-1作为其参数来调用其

  • 问题内容: 寻找一种使计算机具有当前外部IP的更好方法…可以正常工作,但宁愿不依赖外部站点来收集信息…我只能使用与Mac OS捆绑在一起的标准Python 2.5.1库X 10.5.x 问题答案: 如果您在获得外部IP的路由器后面,恐怕您别无选择,只能像您一样使用外部服务。如果路由器本身具有某些查询接口,则可以使用它,但是该解决方案将针对特定环境且不可靠。

  • 问题内容: 我的机器上运行了一个简单的node.js程序,我想获取运行该程序的PC的本地IP地址。如何使用node.js获得它? 问题答案:

  • 问题内容: 我正在使用node.js,需要获取由ISP提供的外部IP地址。有没有一种方法可以不使用http://myexternalip.com/raw之类的服务来实现? 问题答案: 使用包装 https://github.com/alsotang/externalip

  • 问题内容: 我正在尝试使用Java获取我的Internet IP地址,但是当我的IP地址为192.168.0.xxx时,我一直在获取本地地址(即:127.0.0.1) 我正在使用该行: 这似乎是获取IP地址的标准方法,但这不是我想要的。每个教程都说要使用此行,所以我有些困惑。 有人可以让我知道如何获取正确的IP地址吗? 我在连接到WiFi的设备上运行,但未使用任何电缆。我正在使用ifconfig

  • 问题内容: 阅读后:在Java中获取“外部” IP地址 码: 我以为自己是赢家,但出现以下错误 我认为这是因为服务器响应速度不够快,是否有任何方法可以确保它将获得外部ip? 编辑:好的,所以它被拒绝了,其他人知道另一个可以执行相同功能的站点 问题答案: 在运行以下代码之前,请先查看以下内容:http : //www.whatismyip.com/faq/automation.asp