1

クライアントの 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 などを使用すると、クライアントのアドレスではなくサーバーのアドレスが取得されます。

4

3 に答える 3

2

AJAX またはフレームが必要です... IPv4 用と IPv6 用の 2 つの追加のリクエストを行う必要があります。これは、フレームや AJAX なしでは 1 つの HTML ページで行うことはできません。

于 2013-03-25T21:50:24.567 に答える
0

古い投稿ですが、DNS サーバーで 2 つのサブドメインを作成する必要があります。1 番目は IPv4 で、もう 1 つは IPv6 です。

ipv4.subdaomain.com では、A レコードのみを使用します。ipv6.subdomain.com では AAAA レコードを使用します。

ここで、JavaScript で AJAX リクエストを ipv6.subdomain.com および ipv4.subdomain.com に送信します。PHP で、クライアントの IP アドレスを返します。

于 2016-05-08T17:37:45.753 に答える
-1

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 呼び出しを使用して情報を取得できます。質問の一部を適切に推奨するために、既存のページのすべての詳細が不明です.

幸運を!

于 2013-03-25T19:57:55.097 に答える