dig www.sina.com.cn
jupiter.sina.com.cn. 30 IN A 183.232.24.117
jupiter.sina.com.cn. 30 IN A 183.232.24.115
jupiter.sina.com.cn. 30 IN A 183.232.24.112
jupiter.sina.com.cn. 30 IN A 183.232.24.114
jupiter.sina.com.cn. 30 IN A 183.232.24.111
jupiter.sina.com.cn. 30 IN A 183.232.24.113
jupiter.sina.com.cn. 30 IN A 183.232.24.116
这意味着www.sina.com.cn域名可以解析为上述七个ips中的一个。
我想知道以下代码究竟要访问哪个IP。
import requests
source = 'http://www.sina.com.cn'
r = requests.get(source)
print(r.headers)
{'Server':'nginx','Expires':'Fri,03 Feb 2017 06:41:23 GMT','Date':'Friday,03 Feb 2017 06:40:23 GMT','Age ':'10','Content-Encoding':'gzip','Content-Length':'133766','Content-Type':'text / html','X-Cache':'来自cmnet.xxg的HIT .18a4.34.spool.sina.com.cn','X-Powered-By':'shci_v1.03','Vary':'Accept-Encoding','Cache-Control':'max-age = 60 ','Last-Modified':'周五,2017年2月3日06:40:00 GMT'}
没有IP地址信息。
ping cmnet.xxg.18a4.34.spool.sina.com.cn
ping: unknown host cmnet.xxg.18a4.34.spool.sina.com.cn
使用上述python代码向域名 www.sina.com.cn 发送请求时,访问了哪个IP地址? 打开wireshark来监控进程。
此时www.sina.com.cn被解析为183.232.24.111,也许下次它可能被解析为183.232.24.117,无论哪一个,我希望它由我的python代码显示。
ip将在范围内从一个更改为另一个(183.232.24.111-183.232.24.117)。
答案 0 :(得分:1)
>>> import requests
>>> r = requests.get('http://www.sina.com.cn', stream=True)
>>> r.raw._connection.sock.getpeername()
('151.249.91.56', 80)