Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Python套接字绑定到特定域?_Python_Sockets_Heroku - Fatal编程技术网

如何将Python套接字绑定到特定域?

如何将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

我有一个Heroku应用程序,它有一个域
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地址的域名的信息(例如,主机头),但这不能保证是正确的,并且可能是伪造的。在套接字/传输级别,不发送该信息。