如何将Python套接字绑定到特定域?
我有一个Heroku应用程序,它有一个域如何将Python套接字绑定到特定域?,python,sockets,heroku,Python,Sockets,Heroku,我有一个Heroku应用程序,它有一个域moarcatz.tk。它使用Python的套接字侦听非HTTP请求 文档声明,如果我将套接字绑定到一个空字符串作为IP地址,它将侦听所有可用接口。我不断收到来自不同IP地址的空请求,因此我假设将套接字设置为只侦听到moarcatz.tk的连接可以解决问题。但我不知道如何将套接字绑定到域名。 我尝试了'moarcatz.tk'和gethostbyname('moarcatz.tk'),但两者都给了我这个错误: OSError: [Errno 99] Can
moarcatz.tk
。它使用Python的套接字侦听非HTTP请求
文档声明,如果我将套接字绑定到一个空字符串作为IP地址,它将侦听所有可用接口。我不断收到来自不同IP地址的空请求,因此我假设将套接字设置为只侦听到moarcatz.tk的连接可以解决问题。但我不知道如何将套接字绑定到域名。
我尝试了'moarcatz.tk
'和gethostbyname('moarcatz.tk')
,但两者都给了我这个错误:
OSError: [Errno 99] Cannot assign requested address
这是怎么回事?你不能通过你的代码来控制它,但你可以通过Heroku来控制它
Heroku有一个相当漂亮的DNS CNAME工具,你可以使用它来确保你的应用程序只监听特定域的传入请求——它是核心Heroku平台的一部分
你要做的是:
heroku domains:add www.moarcatz.tk
然后,转到DNS提供商的moarcatz.tk
,并为以下内容添加CNAME记录:
www <heroku-app-name>.herokuapp.com
www.herokuapp.com
这将做两件事:
- 将您的DNS指向Heroku
- 让Heroku过滤传入流量,并允许该特定域使用该流量
你不能通过你的代码来控制它,但你可以通过Heroku来控制它
Heroku有一个相当漂亮的DNS CNAME工具,你可以使用它来确保你的应用程序只监听特定域的传入请求——它是核心Heroku平台的一部分
你要做的是:
heroku domains:add www.moarcatz.tk
然后,转到DNS提供商的moarcatz.tk
,并为以下内容添加CNAME记录:
www <heroku-app-name>.herokuapp.com
www.herokuapp.com
这将做两件事:
- 将您的DNS指向Heroku
- 让Heroku过滤传入流量,并允许该特定域使用该流量
您不能将侦听套接字绑定到DNS主机名,只能绑定到IP地址或接口。@klauds。那么,我如何确保我只收到指向moarcatz.tk
的请求呢?严格来说,你不能。像HTTP这样的应用程序级协议可以为您提供一些有关用于获取IP地址的域名的信息(例如,主机头),但这不能保证是正确的,并且可能是伪造的。在套接字/传输级别,不会发送该信息。您不能将侦听套接字绑定到DNS主机名,只能绑定到IP地址或接口。那么,我如何确保我只收到指向moarcatz.tk
的请求呢?严格来说,你不能。像HTTP这样的应用程序级协议可以为您提供一些有关用于获取IP地址的域名的信息(例如,主机头),但这不能保证是正确的,并且可能是伪造的。在套接字/传输级别,不发送该信息。