クライアントの ipv4 および ipv6 アドレスを検出する (おそらくデュアルスタック) Web ページを作成したいのですが、フレームなしで簡単に実行する方法はありますか? フレームを使用すると、IPv4 または IPv6 でのみ利用可能な 2 つのページをロードできると思います (1 つは A レコードのみ、もう 1 つは AAAA のみの 2 つのドメイン名)。それを行う別のクリーンで簡単な方法はありますか? http://test-ipv6.com/できますが、IPアドレスを表示するだけでは実装がかなり複雑だと思います。ありがとう。php $_SERVER["REMOTE_ADDR"]でやろうと思っているのですが、(使い方がわからない)ajaxなしで他のページに渡すにはどうすればいいですか? デュアルスタック ドメイン名のテスト ページ、ipv4 のみの 1 つのコールバック ページ、ipv6 のみの 1 つのコールバック。コールバックをテスト ページに渡すにはどうすればよいですか? curl などを使用すると、クライアントのアドレスではなくサーバーのアドレスが取得されます。
3 に答える
AJAX またはフレームが必要です... IPv4 用と IPv6 用の 2 つの追加のリクエストを行う必要があります。これは、フレームや AJAX なしでは 1 つの HTML ページで行うことはできません。
古い投稿ですが、DNS サーバーで 2 つのサブドメインを作成する必要があります。1 番目は IPv4 で、もう 1 つは IPv6 です。
ipv4.subdaomain.com では、A レコードのみを使用します。ipv6.subdomain.com では AAAA レコードを使用します。
ここで、JavaScript で AJAX リクエストを ipv6.subdomain.com および ipv4.subdomain.com に送信します。PHP で、クライアントの IP アドレスを返します。
PHP などのサーバー側スクリプト言語を使用する場合は、次のコードを使用して実行できます。
<?php
function look_me_up()
{
$records = dns_get_record( trim(`hostname --fqdn`) );
foreach($records as $record)
{
if ($record['type'] == 'A')
$ip = $record['ip'];
}
return $ip;
}
?>
http://php.net/manual/en/function.gethostbyname.php
フレーム内にある必要はありません。ページが PHP でない場合は、jquery ajax 呼び出しを使用して情報を取得できます。質問の一部を適切に推奨するために、既存のページのすべての詳細が不明です.
幸運を!