首页 文章

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

提问于
浏览
1

我想创建一个网页检测(可能是双栈)客户端的ipv4和ipv6地址,有没有框架的简单方法吗?使用框架我想我可以加载两个页面,每个页面只能在IPv4或IPv6中使用(两个域名只有A记录,另一个只有AAAA) . 还有另一种干净简单的方法吗? http://test-ipv6.com/可以做到但我猜他们的实现对于显示ip地址非常复杂 . 谢谢 . 我正在考虑用php $ _SERVER ["REMOTE_ADDR"]来做这件事,但我怎么能把它传递到没有ajax的其他页面(我不是't know how to use)? The test page on a dual-stack domain name, 1 callback page on ipv4 only, 1 callback on ipv6 only. How can I pass the callback to the test page? If I use things like curl I get the server'的地址而不是客户端的地址 .

3 回答

  • 0

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

  • -1

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

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

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

  • 2

    如果您使用像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调用来获取信息 . 我不清楚您现有页面的所有细节,以便对部分问题提出好的建议 .

    祝好运!

相关问题