1985 version = 'v4' |
1986 version = 'v4' |
1986 if version == 'v4': |
1987 if version == 'v4': |
1987 family = socket.AF_INET |
1988 family = socket.AF_INET |
1988 else: |
1989 else: |
1989 family = socket.AF_INET6 |
1990 family = socket.AF_INET6 |
1990 return socket.getaddrinfo(host, None, family, |
1991 |
1991 socket.SOCK_STREAM)[0][4][0] |
1992 retryCount = 0 |
|
1993 while retryCount < 10: |
|
1994 try: |
|
1995 addrinfo = socket.getaddrinfo( |
|
1996 host, None, family, socket.SOCK_STREAM) |
|
1997 return addrinfo[0][4][0] |
|
1998 except Exception: |
|
1999 retryCount += 1 |
|
2000 time.sleep(3) |
|
2001 return None |
1992 |
2002 |
1993 def main(self): |
2003 def main(self): |
1994 """ |
2004 """ |
1995 Public method implementing the main method. |
2005 Public method implementing the main method. |
1996 """ |
2006 """ |
2071 try: |
2081 try: |
2072 redirect = int(sys.argv[2]) |
2082 redirect = int(sys.argv[2]) |
2073 except (ValueError, IndexError): |
2083 except (ValueError, IndexError): |
2074 redirect = True |
2084 redirect = True |
2075 |
2085 |
2076 try: |
2086 ipOrHost = sys.argv[3] |
2077 ipOrHost = sys.argv[3] |
2087 if ':' in ipOrHost: |
2078 if ':' in ipOrHost: |
2088 remoteAddress = ipOrHost |
2079 remoteAddress = ipOrHost |
2089 elif ipOrHost[0] in '0123456789': |
2080 elif ipOrHost[0] in '0123456789': |
2090 remoteAddress = ipOrHost |
2081 remoteAddress = ipOrHost |
2091 else: |
2082 else: |
2092 remoteAddress = self.__resolveHost(ipOrHost) |
2083 remoteAddress = self.__resolveHost(ipOrHost) |
|
2084 except Exception: |
|
2085 remoteAddress = None |
|
2086 |
2093 |
2087 sys.argv = [''] |
2094 sys.argv = [''] |
2088 if '' not in sys.path: |
2095 if '' not in sys.path: |
2089 sys.path.insert(0, '') |
2096 sys.path.insert(0, '') |
2090 |
2097 |