【发布时间】:2016-08-30 23:02:04
【问题描述】:
我有一个 Heroku 应用程序,它的域为 moarcatz.tk。它使用 Python 的 socket 侦听非 HTTP 请求。
文档指出,如果我将套接字作为 IP 地址绑定到空字符串,它将侦听所有可用接口。我不断收到来自各种 IP 地址的空请求,因此我假设将套接字设置为仅侦听与 moarcatz.tk 的连接将解决问题。但我不知道如何将套接字绑定到域名。
我试过'moarcatz.tk'和gethostbyname('moarcatz.tk'),但都给我这个错误:
OSError: [Errno 99] Cannot assign requested address
这是怎么回事?
【问题讨论】:
-
您不能将侦听套接字绑定到 DNS 主机名,只能绑定到 IP 地址或接口。
-
@KlausD。那么如何确保我只收到定向到
moarcatz.tk的请求? -
严格来说,你不能。像 HTTP 这样的应用程序级协议可以为您提供有关用于获取 IP 地址的域名的一些信息(例如,Host 标头),但这不能保证是正确的,并且可以被欺骗。在套接字/传输级别,不会发送该信息。