我想检查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
,但结果似乎不像我想要的那样?
我还有另一个方向来完成这项任务吗?
任何建议都将受到赞赏。
答案 0 :(得分:1)
据我所知,你所要求的是不可能的。
公共IP地址上的网络服务器根本无法联系私有IP地址。这就是私有IP地址:无法通过公共互联网将流量路由到它们。
私有IP地址用于许多网络,例如办公室内部网和家庭网络。由于这些网络彼此分离,因此相同的IP地址可以用于不同网络中的不同设备而没有任何问题。可能有数以千计的设备具有您指定的192.168.1.xxx地址:请求应发送给哪一个?
您的办公室网络可能知道如何将流量从您的台式计算机路由到192.168.1.xxx地址,但网络服务器不会,除非它也在同一网络上。