2

問題は、私の研究所では全員が同じグローバル IP を持っているということです。現在、投票システムで投票するためにユーザーを一意に識別する必要があるサイトがあります... そうしないと、Cookie を使用してそれらを識別し、簡単に削除します世論調査を不正に操作する。サイトのローカル IP は 192.168.1.69 であるため、誰かがそこからコメントするとクライアント アドレスが取得されますが、このコードを編集して、(IP ではなく) Web サイトが私たちの研究所からアクセスされているかどうかを確認する必要があります。はい、おそらくローカルIPにpingを実行して、クライアントアドレスを保存する必要があります。だから私を助けてください。

関連するコードの一部を次に示します

if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip = $_SERVER['REMOTE_ADDR'];
else 
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
4

1 に答える 1

2

まず、私は (ただの) IP ベースのログイン システムを実際には使用しません。上記のコメントを読んでください。

うーん..あなたの質問を何度も読んだ後でも、あなたの質問を正しく理解しているかどうかわかりません。しかし、私がそれを正しく理解していれば、技術的な「制限」もあるかもしれません:

私が理解したこと:

あなたはウェブサイトを持っています。たとえば、www.xyz.com としましょう。次に、NAT ゲートウェイを介してインターネットにアクセスする多数のクライアントを含むローカル ネットワークを作成します。

あなたは計画しています:

NAT ルーターの IP (研究所内のクライアントを意味します) が www.xyz.com でクライアント IP として認識される場合、研究所のネットワーク内からローカル クライアント IP を取得するために「pingback」を行う予定はありますか?

私の理解が正しければ、それは不可能です。NAT の原則に反するからです。NAT の意味は (簡単に言えば)インターネット アドレス空間からローカル IPを隠すことです。

プログラマーによって破られるように作られた制限として ;) NAT トラバーサルと呼ばれる方法でその「pingback」を作成する方法があります。しかし、IP ベースのログイン システムを実装しないことをお勧めします。なぜなら:

  • IP は簡単にスプーフィングされる可能性があるため、これは安全ではありません。(1 台のマシンを切断して、その IP アドレスを使用することもできます)

  • DHCPとは何ですか?IP が一度変更された場合はどうなりますか?

注: IP はログインに十分な ID ではありません

于 2013-01-30T20:26:49.550 に答える