ウェブサイトでHTMLを使用して訪問者のIPアドレスを検出するにはどうすればよいですか? 私はcontactform.htmlとformsent.htmlを持っています。 そしてformsent.htmlが私の電子メールに連絡先情報を送るとき、私はまたIPアドレスを見たいと思っています!HTMLを使用して訪問者のIPアドレスを検出するにはどうすればよいですか?
答えて
などPHP、ASP、として、プログラミング言語を使用する必要があります。しかし、訪問者のIPアドレスはPHPを通して見つけることができます。
$ip=$_SERVER['REMOTE_ADDR'];
HTMLだけではできません。
HTTPヘッダーが利用できるスクリプトを使用する必要があります。
JSONPを使用してthis SO answerを参照してください。
PHPの場合、$_SERVER['REMOTE_HOST']
を使用します。
できません。
HTMLはプログラミング言語ではなくマークアップ言語です。それは何もしません - コンテンツを構成するだけです。
あなたはあなたがHTMLを通じてそれを行うことはできません
どうすればPHPで使用できますか? – LukeyBoyIsXen
@LukeyBoyIsXen use $ _SERVER ['REMOTE_HOST'] –
HTMLはマークアップ言語なので、変数はありません。
PHPを使用したい場合は、$ _SERVERスーパーグローバル変数を使用する必要があります。解決策は次のようになります。
echo $_SERVER["REMOTE_ADDR"];
しかしこれは最も基本的であり、ユーザは彼らが自明それを変更できるようにするだけでなく、プロキシの背後にある場合は失敗します。ずっとずっと良い方法は、のようなものを使用することです:
function get_ip_address() {
// check for shared internet/ISP IP
if (!empty($_SERVER['HTTP_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
// check for IPs passing through proxies
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
// check if multiple ips exist in var
$iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($iplist as $ip) {
if ($this->validate_ip($ip))
return $ip;
}
}
if (!empty($_SERVER['HTTP_X_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_X_FORWARDED']))
return $_SERVER['HTTP_X_FORWARDED'];
if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && $this->validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
return $_SERVER['HTTP_FORWARDED_FOR'];
if (!empty($_SERVER['HTTP_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_FORWARDED']))
return $_SERVER['HTTP_FORWARDED'];
// return unreliable ip since all else failed
return $_SERVER['REMOTE_ADDR'];
}
function validate_ip($ip) {
if (filter_var($ip, FILTER_VALIDATE_IP,
FILTER_FLAG_IPV4 |
FILTER_FLAG_IPV6 |
FILTER_FLAG_NO_PRIV_RANGE |
FILTER_FLAG_NO_RES_RANGE) === false)
return false;
self::$ip = $ip;
return true;
}
(http://stackoverflow.com/questions/1634782/what-is-the-most-accurate-way-to-retrieve-a-users -correct-ip-address-in-php)
これはHTTP_X_FORWARDED_FORフィールドを正しく解析し、IPを検証してプライベートブロックではなく正しいフォーマットであることを確認します。
これは、ユーザーが自らのアドレスを偽装する可能性もカバーします。また、REMOTE_ADDRは常に設定されるため、残りは使用されません。 – deceze
あなたは正しいです。私はラウンドを変更して、最初に転送をチェックし、次に転送をチェックします。実際、この全体的な答えは駄目です。私はより良いものに書き直しています。 –
編集中のIPアドレスの値は何ですか? – LukeyBoyIsXen
次のスクリプトが役に立ちます。コピーして保存することができます。{whateveryouwant}.php
<?php
echo "Your IP is";
echo $_SERVER["REMOTE_ADDR"];
function get_ip_address() {
// check for shared internet/ISP IP
if (!empty($_SERVER['HTTP_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
// check for IPs passing through proxies
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
// check if multiple ips exist in var
$iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($iplist as $ip) {
if ($this->validate_ip($ip))
return $ip;
}
}
if (!empty($_SERVER['HTTP_X_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_X_FORWARDED']))
return $_SERVER['HTTP_X_FORWARDED'];
if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && $this->validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
return $_SERVER['HTTP_FORWARDED_FOR'];
if (!empty($_SERVER['HTTP_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_FORWARDED']))
return $_SERVER['HTTP_FORWARDED'];
// return unreliable ip since all else failed
return $_SERVER['REMOTE_ADDR'];
}
function validate_ip($ip) {
if (filter_var($ip, FILTER_VALIDATE_IP,
FILTER_FLAG_IPV4 |
FILTER_FLAG_IPV6 |
FILTER_FLAG_NO_PRIV_RANGE |
FILTER_FLAG_NO_RES_RANGE) === false)
return false;
self::$ip = $ip;
return true;
}
?>
- 1. IPアドレスで「訪問の長さ」を検出するにはどうすればよいですか?
- 2. 訪問者の実際のIPアドレスを検出する方法
- 3. DNSリクエストから訪問者のIPアドレスを取得するにはどうすればよいですか?
- 4. 私のサイト訪問者のIPアドレスを
- 5. すべての訪問者のIPアドレスをロギングする
- 6. flask_restfulからnginxに訪問者のIPアドレスを正しく転送する
- 7. PHPを使用してサーバーのローカルIPアドレスを取得するにはどうすればよいですか?
- 8. 訪問者が最新バージョンのブラウザを使用しているかどうかを確認するにはどうすればよいですか?
- 9. 訪問者のIP
- 10. Ruby/Torを使用してIPアドレスを変更するにはどうすればよいですか?
- 11. IPアドレスを使用してコンピュータに接続するにはどうすればよいですか?
- 12. Rails 5 - イメージがホットリンクされているかどうかを検出し、リクエストのIPアドレスを記録するにはどうすればよいですか?
- 13. IPアドレスを印刷するにはどうすればよいのですか
- 14. 訪問者ネットワークのIPアドレスを見つける
- 15. 訪問者の国を検出し、正しいイメージまたはテキストを表示するにはどうすればよいですか?
- 16. Facebookのファンページのウェルカムタブに訪問者のフルネームを表示するにはどうすればよいですか?
- 17. 単一のネットワーククエリを使用せずにローカルWindowsボックスのすべてのIPアドレスとホスト名を検出するにはどうすればよいですか?
- 18. ブラウザが訪問済みのリンクを区別しているかどうかを検出するにはどうすればよいですか?
- 19. ユーレカでホスト名の代わりにIPアドレスを使用するにはどうすればよいですか?
- 20. テーブル内のIPアドレスのリストに対してユーザーのIPアドレスを検証するにはどうすればよいですか?
- 21. 各訪問者の一意のIDを取得するにはどうすればよいですか? php
- 22. クライアントはどのようにサーバーのIPアドレスを検出しますか?
- 23. JavaでIPアドレスを使用してMacアドレスを検索する
- 24. 同じIPアドレスの場合、ウェブサイト訪問者を新しいページにリダイレクト
- 25. 訪問者のIPアドレスデータベース
- 26. 訪問者にプライベートIPを取得し、訪問者を追跡するためにデータベースに格納します
- 27. 訪問者のIPアドレスがMySQLに登録されていることを確認してください
- 28. Webサーバーのすべての使用可能なIPアドレスを検出するにはどうすればよいですか?
- 29. htaccessを使用して訪問者をhttps://www.example.com(wwwから始まるssl)にリダイレクトするにはどうすればよいですか?
- 30. 初回訪問者にキャッシュされたページを提供するにはどうすればいいですか?
これはHTML(またはJavaScript)から取得しません。 contactform.htmlを処理するスクリプトから取得します。 –