我正在尝试通过https
URL获取图像,并且遇到了一些问题。我使用Java的keytool命令生成了一个密钥库。如果我指定的通用名称(CN)等于我的主机名,例如CN =
JONMORRA,然后尝试通过我的主机名进行查询,例如https:// JONMORRA:8443
/,那么它可以正常工作。但是,如果我将通用名称指定为我的IP地址(例如CN =
192.168.56.1),并尝试通过我的IP地址(例如https://192.168.56.1:8443/)进行查询,则会收到错误消息
HTTPS主机名错误:应为<192.168.56.1>
这说明我的主机名是错误的,即使这是我在密钥库中指定的。
我想使用IP地址代替主机名,这样我就可以在Linux和Windows机器之间查询而不用担心主机名。
为什么CN不接受IP地址,我该如何解决?
谢谢
该代码段可能对您有用:
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
如果您确实尝试了此代码,但该代码不起作用,请张贴为urlHostName
和打印的内容session.getPeerHost()
。
另外,为什么要使Windows和Linux机器互操作,则需要使用IP地址而不是主机名?
问题内容: 在我的程序中,用户输入url字符串,例如 http://www.engineering.uiowa.edu/~hawkeng//fall01/graphics/potato.gif 我将如何获得该网址的IP地址?我尝试使用 但是结果总是返回null。获取IP地址的正确方法是什么? 问题答案: 试试这个: 要获取原始IP:
问题内容: 我正在尝试使用Java获取我的Internet IP地址,但是当我的IP地址为192.168.0.xxx时,我一直在获取本地地址(即:127.0.0.1) 我正在使用该行: 这似乎是获取IP地址的标准方法,但这不是我想要的。每个教程都说要使用此行,所以我有些困惑。 有人可以让我知道如何获取正确的IP地址吗? 我在连接到WiFi的设备上运行,但未使用任何电缆。我正在使用ifconfig
问题内容: 我有IP地址和掩码,例如。我想检查是否在该范围内。是否存在可以执行此操作的库或实用程序,或者我需要自己写点东西? 问题答案: 首先,您需要将IP地址转换为flat ,这将更易于使用: 一旦您的IP地址为s,就可以执行一些算法来执行检查:
问题内容: 我使用这部分代码来ping通Java中的ip地址,但只有ping通本地主机才能成功,而对于其他主机,程序会说该主机不可访问。我禁用了防火墙,但是仍然有此问题 输出为: 问题答案: 根据javadoc: “如果可以获取特权,典型的实现将使用ICMP ECHO REQUEST,否则它将尝试在目标主机的端口7(Echo)上建立TCP连接。” 选项1(ICMP)通常需要管理权限。
问题内容: 我的主机文件(C:\ WINDOWS \ system32 \ drivers \ etc \ hosts)具有一堆IP地址到主机名的映射: 我正在尝试找到一种通过Java API以编程方式从IPAddress转换为HostName的方法。 伪代码: 问题答案: 我从这里尝试了代码,它可以工作。即:
问题内容: 我只想要一些确认。 我在Windows上开发 我正在尝试将Facebook集成到应用中,并且SDK文档说我需要“导出签名” 从这里:http : //developers.facebook.com/docs/guides/mobile/#android 因此它说运行此命令: 首先,我必须下载openssl:OpenSSL 现在,假设上面的命令应该转换为: 因此,您想要安装在最新的Jav