我需要在Java中使用IPv4地址(String或InetAddress对象 - 任何一个都可以)创建http或https URL对象。我已经在这里待了10个小时了。如何使用Java中的InetAddress对象创建URL对象?
尝试该撞墙描述如下:
尝试#1:我试图通过组装串,然后将其馈送到一个URL构造,使URL。
- 教科书声明URL可以是“protocol:// host”,主机可以是主机名或IP地址。但创建一个这样的URL:
URL a = new URL("http://151.101.65.69");
并打开一个流到此URL(a
)给出一个HTTP错误500(内部服务器错误 - 发生意外的情况,服务器不知道如何处理)。 - 让我感到愤怒的是
URL a = new URL("http://stackoverflow.com");
的作品。 - 在这一点上,我卡住了。我不知道要改变什么,或者如何前进。
- 教科书声明URL可以是“protocol:// host”,主机可以是主机名或IP地址。但创建一个这样的URL:
尝试#2:我尝试使用InetAddress类中的“getHostName()”方法对IP地址执行反向查找。
- 这应该通过执行反向DNS查找来返回主机名称。然而,我一直试图为151.101.65.69(stackoverflow网络服务器的IP地址),并查找失败。由于失败,我的意思是IP地址作为字符串而不是主机名作为字符串返回。我阅读了Oracle文档http://docs.oracle.com/javase/1.5.0/docs/api/java/net/InetAddress.html#getHostName(),但我不明白如何克服文档提及的“安全管理器”(或者确实是反向查找失败的原因)。
- 我也试过“getCannonicalHostName()”,但那也没有飞。
我想弄清楚如何使用IP地址打开网站。它看起来像我的浏览器遇到与我的代码相同的问题。我阅读了How to access site through IP address when website is on a shared host?,但我没有任何用户名,因为我希望能够打开任何用户拥有IP地址的网站。添加端口(如80)似乎不起作用;也不会将用户名留空或使用通用的“用户”或“来宾”。
我需要的是从一个IPv4字符串或InetAddress对象创建一个URL对象,我卡住了。我知道一个像你这样的知识渊博的程序员可能会说,从IP地址创建URL不是IP地址的目的,或者指出我没有包含URL的文件部分,但这不是问题。你能帮我解决我的核心挑战吗?
如果您在Web浏览器中加载“http:// 151.101.65.69”,会发生什么情况? – chrylis
@chrylis我收到一条错误消息:“Fastly error:unknown domain:151.101.65.69。Please check that this domain has been added to a service。” – Mike
我忘了在帖子中提到这个,但是我也收到了我尝试的其他地址的消息,例如Google和Duckduckgo。 – Mike