如何检测客户端ipv4和ipv6地址?

时间:2013-03-25 19:26:00

标签: dns ip ipv6 ip-address

我想创建一个网页检测(可能是双栈)客户端的ipv4和ipv6地址,有没有框架的简单方法呢? 使用框架我想我可以加载两个页面,每个页面只能在IPv4或IPv6中使用(两个域名只有A记录,另一个只有AAAA)。 还有另一个干净的&简单的方法吗? http://test-ipv6.com/可以做到,但我猜他们的实现对于显示ip地址非常复杂。 谢谢。 我正在考虑使用php $ _SERVER [“REMOTE_ADDR”],但是如何将其传递给没有ajax的其他页面(我不知道如何使用)?双栈域名的测试页面,仅ipv4上的1个回调页面,仅ipv6上的1个回调。如何将回调传递给测试页?如果我使用curl之类的东西,我会得到服务器的地址而不是客户端的地址。

3 个答案:

答案 0 :(得分:2)

您需要AJAX或帧...您必须做两个额外的请求,一个用于IPv4,一个用于IPv6。如果没有框架或AJAX,则无法在一个HTML页面中完成。

答案 1 :(得分:0)

旧帖子,但您需要在DNS服务器上创建2个子域。第一个应该是IPv4而另一个应该是IPv6。

在ipv4.subdaomain.com上,仅使用A记录。在ipv6.subdomain.com上使用AAAA记录。

现在,在您的javascript中发送一个AJAX请求到ipv6.subdomain.com和ipv4.subdomain.com。在PHP中返回客户端上的IP地址。

答案 2 :(得分:-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调用来获取信息。我不清楚您现有网页的所有细节,以便对部分问题提出好的建议。

祝你好运!

相关问题