0

重複の可能性:
サーバーはどのようにして実際のクライアント IP アドレスを見つけることができますか?

ユーザーが自分のローカル (LAN) IP を非常に迅速かつ簡単に見つけられるようにする必要があります。

私たちのネットワークにはsquidプロキシがあるため、すべてのユーザーがその背後に座っています(これは内部IP検出の問題です.私が試したすべてのPHPスクリプトは、せいぜいクライアントではなくプロキシのIPを検出できます).

LAMP サーバーで動作するあらゆる種類の言語を歓迎します...

また、Windows 上の単純な EXE ファイルは「プラン b」として機能する可能性がありますが、機能するものは見つかりませんでした。

4

3 に答える 3

1

@German Arlingtonの答えに従って、HTTPリクエストとともにヘッダーを送信するようにSquidを構成するのが最善の策だと思います。X-Forwarded-For

「オン」に設定すると、Squid は転送する HTTP リクエストにクライアントの IP アドレスを追加します。デフォルトでは、次のようになります。

X-Forwarded-For: 192.1.2.3

次に、 Apache_request_headers()を介して PHP で IP アドレスを読み取ることができます。

<?php
$headers = apache_request_headers();
echo $headers["X-Forwarded-For"];
?>
于 2012-07-25T14:27:02.110 に答える
1

ブラウザに読み込まれた Java アプレットを考えてみましょう。Java は独自の仮想環境を使用するため、クライアントにローカル IP アドレスを表示できます。

始める良い方法だと思います-> http://reglos.de/myaddress/MyAddress.html


Java で IP を取得するにはどうすればよいですか? Java でシステム IP アドレス/ホスト名を確認するにはどうすればよいですか?

これにより、現在の環境を変更する必要がなくなります。そうしないと、squid の再構成が必要になる可能性があります。


あなたが投稿したコメントから、IP をクライアントに提示する目的は、IP をクライアントに読み取らせ、リモート接続できるようにすることであることがわかります。また、クライアント側でアプリを実行することもオプションであると述べました。これはすぐに BGInfo http://technet.microsoft.com/en-us/sysinternals/bb897557.aspxに私を駆り立てました- 特にクライアントのオペレーティング システムが Windows の場合。


ページに配置する簡単な Java アプレット:

function myIP(){ var vi="uses java to get the users local ip number"
    var yip2=java.net.InetAddress.getLocalHost();   
    var yip=yip2.getHostAddress();
  return yip;
}//end myIP

alert("your machine's local network IP is "+ myIP())
于 2012-07-25T14:03:42.443 に答える
0

あなたは興味があるかもしれません

http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html

一般に、探している情報を含むはずの http ヘッダーに

于 2012-07-25T14:04:13.740 に答える