V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
holinhot
V2EX  ›  DNS

php 能不能以客户端身份获取某个网站的 ip 地址

  •  
  •   holinhot · 2015-04-07 00:42:48 +08:00 · 3847 次点击
    这是一个创建于 3523 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目地为了测试客户的dns是否正常
    比如客户ip 1.1.1.1
    要测试的域名www.qq.com 2.2.2.2
    然后我写个测试页面www.testqq.com/test.php 客户访问这个页面然后可以在页面显示www.qq.com解析的ip(以用户的身份和dns请求解析得到的ip)

    17 条回复    2015-04-07 19:05:04 +08:00
    kukat
        1
    kukat  
       2015-04-07 00:52:29 +08:00   ❤️ 1
    php 可以用 gethostbyname()

    客户端你咋取得 dns 解析的 ip?

    另外,因为 cdn 之类的原因,不同地方,不同网络环境解析的 ip 会不同的
    holinhot
        2
    holinhot  
    OP
       2015-04-07 01:08:31 +08:00
    @kukat gethostbyname() 是以客户的身份请求还是 以服务器身份请求
    holinhot
        3
    holinhot  
    OP
       2015-04-07 01:26:21 +08:00
    @kukat 测试了,是以用户的身份解析的
    Puteulanus
        4
    Puteulanus  
       2015-04-07 04:07:12 +08:00
    在网上看到个解决思路

    自建一个NS服务器,用它解析自己的一个域名(比如abc.com
    PHP输出的时候,带上一个上面域名随机的子域名的资源(比如dshfjdsfsdf.abc.com/test.jpg)
    从NS的log里提取出客户的DNS对这个子域名(dshfjdsfsdf.abc.com)的解析请求
    Livid
        5
    Livid  
    MOD
       2015-04-07 04:08:22 +08:00   ❤️ 2
    五楼的方法是目前各大 CDN 的查错网站常用的方法。
    Anybfans
        6
    Anybfans  
       2015-04-07 08:30:15 +08:00
    @Livid 。。你是5楼。哈哈哈哈
    lafirel
        7
    lafirel  
       2015-04-07 09:05:03 +08:00
    @Livid 一种天然呆萌的感觉
    yylzcom
        8
    yylzcom  
       2015-04-07 09:19:22 +08:00 via Android
    啊?难道不是因为屏蔽了某人而livid没屏蔽,所以出现楼层不同的情况?
    NewYear
        9
    NewYear  
       2015-04-07 09:48:55 +08:00
    @Anybfans 看到五楼的发言,一下子感觉到了糗事百科。
    @yylzcom 不是
    JohnChu
        10
    JohnChu  
       2015-04-07 09:55:05 +08:00 via Android
    @Livid 5楼的方法不错
    Anybfans
        11
    Anybfans  
       2015-04-07 10:26:53 +08:00
    @yylzcom 我没屏蔽人呀。。。估计是Livid天然呆。哈哈哈
    fork3rt
        12
    fork3rt  
       2015-04-07 11:00:29 +08:00
    @Livid L大乱入
    caola
        13
    caola  
       2015-04-07 11:13:05 +08:00
    你可以试试 dns_get_record() checkdnsrr() 这两个函数,
    或者 system() exec() 直接调用系统命令去查吧!
    linescape
        14
    linescape  
       2015-04-07 11:49:26 +08:00
    php跑在服务器端,明显能以从访客的IP去某指定dns上获取一个域名的解析记录吧
    倒是浏览器如果有这样的api则能用js实现
    fxxkgw
        15
    fxxkgw  
       2015-04-07 18:14:24 +08:00
    @Puteulanus 这个是获取客户端的DNS的方法吧 通过sessionID构造URL,然后在自己的named服务器上解析,通过log得到客户端的出口DNS。
    fxxkgw
        16
    fxxkgw  
       2015-04-07 18:16:19 +08:00
    我们之前是用python通过dpkt pcap两个库通过抓包形式得到连接域名的真实IP的,PHP只是略懂所以没试过。
    Livid
        17
    Livid  
    MOD
       2015-04-07 19:05:04 +08:00
    @Anybfans
    @lafirel
    @yylzcom
    @NewYear
    @fork3rt

    是我眼花看错了 -_-
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:15 · PVG 12:15 · LAX 20:15 · JFK 23:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.