VMWare ESXi-如何创建脚本/ corn作业来更新google ddns注册?

时间:2018-12-06 14:12:28

标签: python vmware esxi

我正尝试创建一个玉米作业,以通过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无法访问互联网,该如何解决?

感谢帮助

0 个答案:

没有答案