有没有办法确定用户是使用宽带还是拨号

时间:2009-04-15 21:13:49

标签: dial-up broadband

我们要求客户为拨号提供“精简版”版本,并为宽带用户提供所有铃声和口哨声。

该解决方案将使用Flex / Flash / Java EJB和一些jsp。

Web服务器有没有办法区分这两者?

8 个答案:

答案 0 :(得分:16)

您不关心用户的连接类型,您关心下载速度

有一个微型闪存应用程序可以下载闪存的剩余部分,并计算需要多长时间。或者是一个HTML页面,它会计算Ajax下载的时间。

如果下载功能丰富的应用程序需要太长时间,请将最初下载的存根页面/闪存重定向到慢速下载页面(或下载简单的Flash应用程序,或其他任何内容)。

答案 1 :(得分:3)

最简单,最可靠的机制可能是让用户从下拉列表中选择他们的连接类型。很简单,我知道,但它可以为你节省一个悲伤的世界!

答案 2 :(得分:3)

无法区分宽带或拨号作为连接类型,但您可以通过连接速度进行有根据的猜测。

Gmail会执行此操作,并在检测到服务时提供指向其服务的基本HTML版本的链接。

Gmail Load basic html image
(来源:nirmaltv.com

我的猜测是,在AJAX请求上进行了一些客户端javascript轮询。如果周转时间超过阈值,则会出现切换到“lite”的选项。

关于此选项的最佳部分是允许用户选择,如果他们想要使用精简版而不是强制它们。

答案 3 :(得分:1)

我认为这种方法的典型方法就是询问用户。如果您不确定您的用户会提供准确的答案,我怀疑您必须编写一个在客户端上运行速度测试的应用程序。通常,这些记录客户端接收x个字节所需的时间,并使用它来确定带宽。

Actionscript 3有一个库可以帮助您完成此任务,但我相信它需要您在Flash Media Server上部署Flex / Flash应用程序。有关详细信息,请参阅ActionScript 3.0 native bandwidth detection

答案 4 :(得分:1)

以下是尝试类似内容的代码的简短代码段。它在C#中,但它很短,而且只是感兴趣的概念。

Determine the Connection Speed of your client

当然,它们可能是一个临时速度问题,与您在测试等时的用户连接无关。

几年前我遇到过类似的问题,让用户在hi和lo带宽网站之间做出选择。我在页面上加载的第一件事就是这个选项,所以他们可以快速前进。

答案 5 :(得分:1)

@Apphacker(如果我有足够的声誉,我会评论而不是回答......):

不能保证反向 - 我有Earthlink拨号,很快升级到Earthlink DSL(这是可用的......)。

答案 6 :(得分:0)

您可以检查他们的IP并查看它是否已解析为/已分配给拨号提供商,例如AOL,Earthlink,NetZero。不能保证那些不解决这种提供商的人是宽带用户。

答案 7 :(得分:0)

你可以......

  • 询问用户
  • 执行速度测试并询问用户您找到的结果是否正确
  • 执行速度测试并希望找到的结果是正确的

我认为速度测试应该足够了。

如果您只有一个众所周知的小用户组,有时可以通过ip确定连接速度。 (某些提供商为拨号/宽带连接分配不同的子网)