我正尝试创建一个玉米作业,以通过api自动将我的exsi服务器wan ip地址更新为Google Domain DDNS:Google Domain DDNS
我尝试使用python脚本执行此操作:
import os
import ssl
import time
import socket
import urllib.request
import urllib.parse
class GoogleDomainsConfig(object):
"""Houses all information for connecting to Google Domains for changing Synthetic records."""
def __init__(self, domainname, username, password, email):
"""Constructor, set all values"""
self.domainname = domainname
self.username = username
self.password = password
self.email = email
def getServerIP(self):
"""Gets the DNS Specified IP of the requested name."""
return socket.gethostbyname(self.domainname)
def updateDns(self, newIp):
"""Performs a GET which will update the Synthetic DNS record hosted through Google Domains."""
params = urllib.parse.urlencode({'hostname': self.domainname, 'myip': newIp})
update_url = "https://" + self.username + ":" + self.password + "@domains.google.com/nic/update?" + str(params)
opener = urllib.request.FancyURLopener()
opener.version = "Chrome/41.0 " + self.email
f = opener.open(update_url)
def get_host_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('1.1.1.1', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
gdc = GoogleDomainsConfig("something.domain.com","username","password","someone@gmail.com")
gdc.updateDns(get_host_ip())
当我尝试在VMWare ESXi vis ssh命令中运行此脚本时,出现此错误:
[Errno socket error] [Errno 113] No route to host
我认为在exsi系统中集成的python无法访问互联网,该如何解决?
感谢帮助