0

我的网站允许使用 Google 帐户登录,您还可以从 Gmail 或 Google Apps 邀请您的联系人。

我正在尝试确定受邀用户是否拥有谷歌帐户。到目前为止,我检查了域是否为gmail,但对于 google 应用程序帐户,我无法执行这种验证,因为域名可以是任何东西。

通过 dig 命令查找 MX(Mail Exchanger)并查看 MX 是否为 google 服务器是否可靠?

我可以像这样在 Java 中执行此验证

Record[] records = new Lookup("example.com", Type.MX).run();
    for (int i = 0; i < records.length; i++) {
        MXRecord mx = (MXRecord) records[i];
        System.out.println("Host " + mx.getTarget() + " has preference "
                + mx.getPriority());
        if (mx.getTarget().toString().toLowerCase().endsWith("google.com.")
                || mx.getTarget().toString().toLowerCase().endsWith("googlemail.com.")) {
            System.out.println("is google!!!");
        }
    }

这种方法(查找域的MX)可靠吗?这个MX可以改变吗?

谢谢

编辑

到目前为止,我发现谷歌有以下按优先级排序的 MX

  • 0 aspmx.l.google.com。
  • 10 alt1.aspmx.l.google.com。
  • 20 alt2.aspmx.l.google.com。
  • 30 alt3.aspmx.l.google.com。
  • 40 alt4.aspmx.l.google.com。
  • 50 aspmx2.googlemail.com。
  • 60 aspmx3.googlemail.com。
  • 70 aspmx4.googlemail.com。
  • 80 aspmx5.googlemail.com。

因此,从我的角度来看,可以肯定地说,如果 MX 以google.com 结尾。googlemail.com。这是一个 Google Apps 帐户。这可靠吗?

4

1 回答 1

1

可能会改变,但可能性很小,因为谷歌不会从中获得任何好处。

我不是谷歌员工,所以我不能给出保证的答案,但这是我对这种情况的理解:

  1. Google 不会要求现有客户更改他们的 MX 记录,因为这会给客户带来额外的麻烦,而对 Google 没有任何好处,而且只会降低公司选择它们的可能性。

  2. Google 总是可以开始要求新客户使用指向非 Google 顶级域的 MX 记录,但他们可能不会。谷歌似乎喜欢从 google.com 子域提供尽可能多的服务。(事实上​​,正确屏蔽某些类型的 Google 广告和 API 是一件很痛苦的www.google.com事情,因为它们是从用于 Google 搜索之类的同一子域提供的。)

  3. 最坏的情况是,你会得到一个假阴性。即使不是“全部”,“一些”仍然比“无”好。

于 2012-08-24T09:56:52.220 回答