我正在尝试通过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的方法。 伪代码: 问题答案: 我从这里尝试了代码,它可以工作。即:
本文向大家介绍静态IP地址和动态IP地址之间的区别,包括了静态IP地址和动态IP地址之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态IP地址和动态IP地址都用于标识网络或Internet上的计算机。静态IP地址由Internet服务提供商提供,并且在系统连接到网络之前一直保持固定。动态IP地址由DHCP提供,通常公司会获得一个静态IP地址,然后为其在组织网络内的计算机生成动态IP地址。 以