jsp HttpURLConnection getResponseCode不适用于' http://192.168.1.xxx'?的格式

时间:2014-08-08 10:09:40

标签: javascript jsp httpurlconnection http-response-codes

我想检查ip格式为' http://192.168.1.xxx',

如果响应代码=' 200',我可以使用javascript将我的网站重定向到ip。

(确切地说,我的网站是公共IP,我希望我可以检查是否可以将用户重定向到私人IP)

我使用代码:

var success=""; var error="";
<%
    int resboseCode=0;
    HttpURLConnection httpUrlConn;
    try{
        httpUrlConn = (HttpURLConnection) new URL("http://192.168.1.xx").openConnection();
        httpUrlConn.setRequestMethod("HEAD");
        httpUrlConn.setConnectTimeout(30000);
        httpUrlConn.setReadTimeout(30000);
        resboseCode=httpUrlConn.getResponseCode();
%>
sccess='<%= resboseCode %>';
<%
    }catch(Exception e){
%>
error="<%= e.getMessage() %>";
<%
    }
%>

当我使用url =&#34; http://www.google.com"时,它运行正常,但会超时,而url =&#34; http://192.168.1.xxx&# 34。

在检查&#39; http://192.168.1.xxx&#39;?

的格式时,我是否误解了什么是网址或获取响应代码的不同方法?

我搜索互联网并发现另一种方式是发送套接字,例如isReachable,但结果似乎不像我想要的那样?

我还有另一个方向来完成这项任务吗?

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

据我所知,你所要求的是不可能的。

公共IP地址上的网络服务器根本无法联系私有IP地址。这就是私有IP地址:无法通过公共互联网将流量路由到它们。

私有IP地址用于许多网络,例如办公室内部网和家庭网络。由于这些网络彼此分离,因此相同的IP地址可以用于不同网络中的不同设备而没有任何问题。可能有数以千计的设备具有您指定的192.168.1.xxx地址:请求应发送给哪一个?

您的办公室网络可能知道如何将流量从您的台式计算机路由到192.168.1.xxx地址,但网络服务器不会,除非它也在同一网络上。