4

我曾经通过向“ http://www.google.com/a/ {domain}/ ”发出 CURL 请求并检查此字符串“[在此处登录以获取控制面板]”,如果有,它就有 Google Apps,如果没有,就没有 Google Apps。

但是最近谷歌切换到了通用的http://admin.google.com登录页面,并且没有区分域。现在,这显然打破了我过去检查它是否有 Google Apps 的方式。

有没有人有任何其他解决方法来做到这一点?

我尝试了一些来自 Google API 的 URL,但它们需要 Auth ...

注意:我不想通过 MX/TXT 记录检查,我需要检查他们是否有 Google Apps,而不是他们是否正在使用它。原因是我开发了一个Google Apps Toolkit,它进行了一系列检查并给出了域的状态,我用来测试域是否有 Google Apps 的旧方法是 100% 准确的,其他所有在线 Google Apps 测试员由于他们检查 MX 记录,我使用的相当不准确。我不想掉进这个陷阱。这对于曾经拥有 Google Apps 但已转移到其他提供商并希望转回经销商的域非常有帮助(这种情况发生的频率比您想象的要多,我为经销商工作)

4

3 回答 3

12

我已经成功地想通了!

要确定某个域是否购买了 Google Apps,只需执行以下操作:

向以下位置发出 CURL 请求:“ https://www.google.com/a/ {domain} /ServiceLogin”

搜索以下字符串:“抱歉,您访问的域的登录页面没有使用”,如果它包含该字符串,则它没有Google Apps,如果它没有该字符串,则它没有包含 Google Apps。

一个 PHP 函数示例(我在此示例中使用 file_get_contents 而不是 CURL,因为它更短,请注意您需要在 php.ini 中启用基于 URL 的位置)

function lookupGoogleAccount($domain) {
    $url = "https://www.google.com/a/$domain/ServiceLogin";
    $extpage = file_get_contents($url);
    $not_gapps = strpos($extpage,"Sorry, you've reached a login page for a domain that isn't using");

    return !$not_gapps;
}

示例:https ://gapps.qk.com.au/?domain=never.io

即使域是经销商并使用自定义 SSO 解决方案,使用此方法也应该继续工作。

于 2013-08-01T02:58:30.790 回答
1

进一步研究这一点,我发现了一种检查域是否属于 G Suite 控制台的新方法。解决方案是使用G Suite Reseller API的customers.get方法。

正如文档所述,要使用此 API,您需要成为G Suite 经销商并有权访问经销商控制台

这几乎可以被视为官方的 Google 解决方案,因为当您在域上使用它时,如果它是 G Suite 控制台的一部分,作为答案,您将获得您正在检查的域所属的控制台的主域(请参阅下面的截图)。

您可以使用此工具批量检查域。免责声明:我是它的作者。

Google APIs Explorer 域检查

于 2018-12-28T13:26:34.080 回答
-1

Mattisdada的答案并非100% 可靠。

可能存在给定域已被激活和验证的情况,因此可以按照建议通过“ https://www.google.com/a/ {domain}/ServiceLogin”访问它,但这并不意味着它实际上正在使用谷歌应用程序。

我能找到的最佳解决方案是检查 MX 记录以查找google记录。由于这是一个 php 问题,因此最好的选择是使用getmxrr函数。

于 2015-08-02T10:17:23.380 回答