0

我想检查 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="http://www.google.com" 时,它工作正常,但会超时,而 url="http://192.168.1.xxx"。

检查“ http://192.168.1.xxx ”的格式时,我是否误解了 url 或获取响应代码的不同方法?

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

我有其他方向来完成这项任务吗?

任何建议将不胜感激。

4

1 回答 1

1

据我了解,您所要求的是不可能的。

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

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

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

于 2014-08-08T11:56:46.893 回答