我试图从域名获得IP地址,问题是当代码在本地和服务器上运行时,它给出了不同的IP地址。
下面是我的代码和在本地 上运行时的结果import socket
domain_str="use.typekit.net"
ip = socket.gethostbyname(domain_str.strip())
print(ip)
output > '104.86.189.35'
下面是在服务器
上运行相同代码的结果output > '62.115.253.9'
如果有人能告诉我为什么会发生这种情况,我将非常感激。
您要访问的服务器位于Akamai CDN的后面。根据您从该CDN连接的位置,可能会为您提供不同的IP地址,以实现最佳连接。
例如我从一个位置得到:
$ dig use.typekit.net
...
use.typekit.net. 121 IN CNAME use-stls.adobe.com.edgesuite.net.
use-stls.adobe.com.edgesuite.net. 5853 IN CNAME a1988.dscg1.akamai.net.
a1988.dscg1.akamai.net. 133 IN A 89.27.242.17
a1988.dscg1.akamai.net. 133 IN A 89.27.242.41
当从另一个位置
use.typekit.net. 28 IN CNAME use-stls.adobe.com.edgesuite.net.
use-stls.adobe.com.edgesuite.net. 21568 IN CNAME a1988.dscg1.akamai.net.
a1988.dscg1.akamai.net. 5 IN A 104.114.77.65
a1988.dscg1.akamai.net. 5 IN A 104.114.77.32
如果你对这些地址进行GeoIP查找,你会看到你的一个地址位于印度,而另一个位于瑞典。