訪問|問題
我在內網搭了兩個伺服器,一個資料庫伺服器,一個Web伺服器。並且讓網管影射個外網IP給Web伺服器,使得外網內網可以同時訪問。但這樣產生了個問題,Web伺服器取資料是用內網的相對位址,這樣外網訪問時就得不到資料,只能顯示架構。要是把資料庫伺服器也映射了的話,那麼內網就不能訪問了,這樣我就沒辦法調試了。如果把兩個伺服器合為一個,那麼啟動並執行速度就會受到影響,而現在老闆也不想再往裡投錢,畢竟只是一個示範。而把兩台機子搬到實驗室的網路機房直接接到外網上也可以解決,但是網路機房是封閉的,有門禁卡,這樣我就沒辦法經常進去修改。
仔細想了一下,覺得做個判斷應該可以解決這個問題,只要判斷訪問的是內網IP還是外網IP,依據判斷來進行對應的操作
查了查資料發現用JS不錯,因為JS 擷取的 IP 有個優點就是它擷取的是本機設定的 IP,如果電腦通過區域網路上網,那麼它獲得的就是電腦的區域網路 IP,而不像 ASP 中 Request 擷取的是電腦串連到互連網的 IP。
代碼(是從別人那抄來的,不過可以參考一下 :) )
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS擷取用戶端IP</title>
</head>
<body>
<script type="text/javascript" language="javascript">
<!--
function GetLocalIPAddress()
{
var obj = null;
var rslt = "";
try
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj = null;
}
catch(e)
{
//異常發生
}
return rslt;
}
document.write("你的IP是:" + GetLocalIPAddress());
//-->
</script>
</body>
</html>
據說在使用中可能會出現警告,不過這隻是測試,應該不礙事的,呵呵 :)