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

如何成功获取外部IP

常海
2023-03-14
问题内容

阅读后:在Java中获取“外部” IP地址

码:

public static void main(String[] args) throws IOException
{
    URL whatismyip = new URL("http://automation.whatismyip.com/n09230945.asp");
    BufferedReader in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));

    String ip = in.readLine(); //you get the IP as a String
    System.out.println(ip);
}

我以为自己是赢家,但出现以下错误

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://automation.whatismyip.com/n09230945.asp
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at getIP.main(getIP.java:12)

我认为这是因为服务器响应速度不够快,是否有任何方法可以确保它将获得外部ip?

编辑:好的,所以它被拒绝了,其他人知道另一个可以执行相同功能的站点


问题答案:

在运行以下代码之前,请先查看以下内容:http :
//www.whatismyip.com/faq/automation.asp

public static void main(String[] args) throws Exception {

    URL whatismyip = new URL("http://automation.whatismyip.com/n09230945.asp");
    URLConnection connection = whatismyip.openConnection();
    connection.addRequestProperty("Protocol", "Http/1.1");
    connection.addRequestProperty("Connection", "keep-alive");
    connection.addRequestProperty("Keep-Alive", "1000");
    connection.addRequestProperty("User-Agent", "Web-Agent");

    BufferedReader in = 
        new BufferedReader(new InputStreamReader(connection.getInputStream()));

    String ip = in.readLine(); //you get the IP as a String
    System.out.println(ip);
}


 类似资料:
  • 我想打开文件管理器的一个按钮,点击,并想要获得一个特定项目的路径,选择该特定项目。

  • https://alpha.app/#session_state=5AD94ADB-39F5-4664-ABC8&code=7BA2-488E-9BF4-AD7B1A969904.B3D26ED7-649A-454D-B6FF-246792277042

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

  • 大多数新的android设备都有一个内部sdcard和一个外部sdcard。我想做一个文件资源管理器应用程序,但我不能找到如何获得路径使用在我的应用程序,因为 在大多数设备中只返回,但另一个外部sdcard有另一个路径,如。感谢任何帮助。

  • 问题内容: 关于使用/的最佳实践,我有一个非常基本的问题。我有一个像这样的简单函数(DAO) 并在Web服务中使用DAO功能: OR最好在DAO函数中使用/,如下所示: 问题答案: 没有完美的规则。 如果需要尽早但尽可能晚地捕获异常,通常代码会更清晰,更简单。 您应该考虑在发生这种情况时谁必须采取行动,这决定了您是在方法(addVehicle)内进行操作还是调用方必须执行该操作。 例如: 在此示例

  • 问题内容: 考虑以下Python(在2.x或3.x中运行): 我想把手放在里面。但: 我不想成为的显式参数。 我想和成为一个类的对象,不是很奇怪像关闭。 您能建议我如何实现这一目标吗? 现在,我最好的主意是使用线程本地存储。在我的用例中,每当我构造一个时,我已经在某个地方的方法中,并且添加没什么大不了的 对我的代码。 这使您对我愿意考虑的堕落程度有所了解。 问题答案: 在Python 2.6中,也