当我的烧瓶应用程序启动时,它会显示
Running on http://0.0.0.0:80/
如何向此服务器发送http请求?
我试过
telnet 0.0.0.0 80
但它说:
Trying 0.0.0.0...
telnet: connect to address 0.0.0.0: Invalid argument
我使用了请求模块:
r = requests.get('http://0.0.0.0:80')
它说的结果相同
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 288, in request
resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 383, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 206, in send
raise ConnectionError(sockerr)
requests.exceptions.ConnectionError: [Errno 22] Invalid argument
netstat的输出如下:
# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN
tcp6 0 0 [::]:domain [::]:* LISTEN
udp 0 0 0.0.0.0:domain 0.0.0.0:*
udp 0 0 0.0.0.0:bootps 0.0.0.0:*
udp6 0 0 [::]:domain [::]:*
答案 0 :(得分:2)
0.0.0.0表示“本地计算机上的所有IPv4地址”。这是一个不可路由的元地址。
如果要在本地访问服务器,即与服务器在同一台计算机上的客户端,请使用IP地址127.0.0.1(环回Internet协议)或等效的域名(localhost)
r = requests.get('http://127.0.0.1:80')
r = requests.get('http://localhost:80')
如果从远程计算机(在同一子网上)访问服务器,则可以通过运行服务的服务器的IP地址(由路由器/网关分配)连接到服务器
如果从远程计算机访问服务器,则可以通过路由器的IP地址连接到服务器。您需要通过适当的端口转发来设置虚拟服务器。
答案 1 :(得分:0)
&#34; 0.0.0.0&#34;只是一个特殊的地址来指示服务器正在监听其接口上的所有IP。
您仍然应该使用您的计算机本地地址访问它:&#34; 127.0.0.1&#34;或&#34; localhost&#34;。