イントラネット上にデータベース サーバーと Web サーバーの 2 つのサーバーがあります。また、ネットワーク管理者は、外部ネットワークと内部ネットワークに同時にアクセスできるように、外部ネットワーク IP を Web サーバーにマッピングします。ただし、Web サーバーは内部ネットワークの相対アドレスを使用してデータを取得するため、外部ネットワークからアクセスするとデータが取得できず、フレームのみが表示されるという問題が発生します。データベース サーバーもマップされている場合、イントラネットにアクセスできなくなり、デバッグできなくなります。 2 つのサーバーを 1 つに結合すると、実行速度に影響が出るでしょう。そして、上司はこれ以上の資金を投資したくありません。結局のところ、これは単なるデモンストレーションにすぎません。 2台のマシンを研究室のネットワーク計算機室に移動し、外部ネットワークに直接接続することで解決することもできますが、ネットワーク計算機室は閉鎖されており、アクセスカードがあるため、頻繁に行って変更することはできません。
よくよく考えてみると、アクセスされているのが内部ネットワークのIPなのか、外部ネットワークのIPなのかを判断して、その情報を確認した上で対応する操作をすれば解決するのではないかと思いました。 JS で取得した IP には次のような利点があるため、JS を使用するのが良いことがわかりました。 利点の 1 つは、コンピュータが LAN 経由でインターネットに接続されている場合、Request とは異なり、コンピュータの LAN IP を取得することです。 ASP では、インターネットに接続されているコンピューターの IP を取得します。
コード (他の人からコピーしましたが、参照できます:))
<html>
<ヘッド>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS がクライアント IP を取得します</title>
</head>
<body>
<script type="text/javascript" language="javascript">
<!--
関数 GetLocalIPAddress()
{
var obj = null;
var rslt = "";
試す
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj = null;
}
キャッチ(e)
{
//例外が発生する
}
rsltを返します。
次
のとおりです: " + GetLocalIPAddress());
//-->
</script>
</body>
</html>
使用中に警告が出る場合があるとのことですが、これはテストなので問題ありません(笑)