私はこれを読みました:
しかし、それは私にとって根本的な問題に実際には到達していません。192.168.1.7
サーバーが内部の場所からアクセスされているかどうかを知るために、内部ネットワーク上のクライアント IP を取得する必要があります。
少し前に他の誰かによってビルドされたコードを更新しています。このコード スニペットはそこにあります。
$octet = explode(".", getenv("REMOTE_ADDR"), 4);
if($octet[0] != 192 && $octet[1] != 168 && $octet[2] != 1) {
die("You are unable to view this page from your current location.");
}
これはその内部 IP をテストしているように見えますが、同様のコードを含む別のページでdie
メッセージが表示されます。そのコードは実際に私の IP がそれ以外のものであることを示しています192.168.1.7
(このコードは実際には ISP から与えられた私の静的 IP を示しています):
if($octet[0] != 192 && $octet[1] != 168 && $octet[2] != 1) {
die("You are unable to view this page from your current location: " . getenv("REMOTE_ADDR"));
}
このコードは以前は機能していたように見えましたが、現在は機能していないため、少し混乱しています。いつ機能しなくなったのかは完全にはわかりませんが、私が見ているコードに基づいて、そもそも機能するべきではありませんでした.
ノート
また、このサーバーへのアクセスを必要とするすべてのクライアントは内部 (ほとんど) であることにも言及する必要があります。カスタム ライセンス キー モジュールを備えた CRM です。これらの PHP ページには、ネットワーク上のクライアントだけがアクセスできるようにしたいと考えてい192.168.1.0
ます。しかし、難しいのは、次のような場所で DNS を使用して外部から CRM の非キー システム部分にアクセスする方法があることです。
crm.my-domain.com
ネットワークの外部から CRM にアクセスするクライアントは、主要なモジュールにアクセスできません。ネットワーク上のそれらのクライアントのみ192.168.1.0
がキーを認識できる必要があります。したがって、内部 IP を取得できれば、それをテストしてページを表示できます。
注 2
私はネットワークで DNS を実行しており、<internal_ip>
ポート上にある問題のサーバーへのポートフォワードをルーター上に持っています80
。
DNS には次のような A レコードがあります。
crm_servername A 192.168.1.20
そして、CNAME
これは次のとおりです。
crm CNAME crm_servername.my-domain.com
これ以上必要ですか、それともこれでうまくいくのでしょうか? 現在、サブドメインアドレスで問題のサーバーにアクセスできますが、問題のページにアクセスすると、まだ外部 IP が表示されnon-192.168.1.x
ます...
私の質問は、ローカル ネットワーク上にいて、192.168.1.20 などの IP 上のサーバーにアクセスするときに、ネットワーク内にとどまり、ルーティングされないように DNS ゾーン ファイルを設定する方法です。そしてまた戻ってきますか?私は ISP の静的 IP から出入りしているようで、サーバーはこれを考えています。