我需要对 API 服务器进行速率限制。是否可以配置一台机器来限制每个 MAC 地址的请求速率?如果不行,还有其他可行的选择吗?
我想对每个 MAC 进行速率限制,因为多个用户可以共享一个 IP。
答案1
MAC 地址纯粹是一个OSI 第 2 层现象。一旦数据包通过路由器,来自源机器的 MAC 地址信息就不再可用。
因此,正如上述人士所评论的那样,如果您仅向内部用户提供此服务,并且这些用户以及服务本身都在同一个第 2 层网络上,那么这可能是可行的。不过,这似乎不太可能。相反,如果您的用户分散在互联网上,那么您需要使用其他速率限制方案(IP、API 密钥等)。
答案2
您需要重新设计您的应用程序。
你不能通过 MAC 地址进行速率限制,因为你根本没有办法获得用户的 MAC 地址,因为您不在用户的本地网络上。
道路其他所有人这样做的目的是向每个用户发放唯一的 API 密钥,然后通过 API 密钥来限制使用量。