2017-01-02 4 views
0

This page имеет документацию по pygodaddy, которая является скриптом python для обновления IPv4-адреса в DNS Go Daddy. Я установил этот пакет на мою машину CentOS, используя pip install pygodaddy. Документация предоставляет этот пример:Python pygodaddy connection timed out

from pygodaddy import GoDaddyClient 
client = GoDaddyClient() 
if client.login(username, password): 
    print client.find_domains() 
    client.update_dns_record('sub.example.com', '1.2.3.4') 

На моей машине CentOS, я создал файл с именем godaddy.py, с нижеследующим. Примечание. Имя пользователя и пароль предоставляются только для демонстрации, а не для моего имени и пароля.

#!/usr/bin/env python 
import pygodaddy 
import logging 

from pygodaddy import GoDaddyClient 
client = GoDaddyClient() 
logging.basicConfig(filename=/var/log/godaddy/godaddy.log, format='%(asctime)S %(message)s', level=logging.DEBUG) 
if client.login('36524174', 'Bht45f!as34Ra'): 
    print client.find_domains() 
    client.update_dns_record('wima2.freekb.net', '12.34.56.78') 

При вводе питона godaddy.py в терминале ничего не происходит в течение некоторого времени, а затем в конце концов, это отображается:

File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 487, in send 
    raise ConnectionError(e, request=request) 
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='dns.godaddy.com', port=443): Max retries exceeded with url: /default.aspx (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x176e350>: Failed to establish a new connection: [Errno 110] Connection timed out',)) 

Я инвалидов IPTables. Я установил разрешения моего скрипта на 777, принадлежащий root: root.

This post рекомендует добавить сон (int). Я добавил сон (1), но я все еще получаю соединение.

#!/usr/bin/env python 
import pygodaddy 
import logging 
import sleep 

from pygodaddy import GoDaddyClient 
client = GoDaddyClient() 
logging.basicConfig(filename=/var/log/godaddy/godaddy.log, format='%(asctime)S %(message)s', level=logging.DEBUG) 
if client.login('36524174', 'Bht45f!as34Ra'): 
    time.sleep(1) 
    print client.find_domains() 
    client.update_dns_record('wima2.freekb.net', '12.34.56.78') 

Будучи относительно новым для Python, я не уверен, как отладить эту проблему подключения.

EDIT: Хотя у меня есть прокси-сервер в моей локальной сети, я настроил свои машины, чтобы не направлять трафик через прокси-сервер. На любой машине в моей локальной сети, Linux или Windows я могу ping dns.godaddy.com, и я получаю ответ без потери пакетов, поэтому я знаю, что у меня есть возможность поговорить с dns.godaddy.com. В скрипте python используется порт 443. Если я пытаюсь выполнить telnet dns.godaddy.com 443, время соединения истекает.

telnet dns.godaddy.com 443 
Trying 104.238.65.158. . . 
telnet: Unable to connect to remote host: Connection timed out  

Я также пробовал использовать nmap, чтобы увидеть перелеты между моим клиентом и dns.godaddy.com. К моему большому удивлению, при прослеживании маршрута до dns.godaddy.com на порту 443, пакеты могут перепрыгивать весь путь до dns.godaddy.com. Интересно, почему я подключаю время, связанное с telnet и скриптом python, но nmap способен «подключиться».

nmap -Pn --traceroute -p 443 dns.godaddy.com 

Starting Nmap 6.40 (http://nmap.org) at 2017-01-02 19:17 CST 
Nmap scan report for dns.godaddy.com (104.238.65.158) 
Host is up (0.076s latency). 
rDNS record for 104.238.65.158: ip-104-238-65-158.ip.secureserver.net 
PORT  STATE  SERVICE 
443/tcp filtered https 

TRACEROUTE (using proto 1/icmp) 
HOP RTT  ADDRESS 
1 4.67 ms r1.software.eng.us (192.168.0.1) 
2 18.84 ms 142.254.152.173 
3 35.83 ms ae62.applwibp02h.midwest.rr.com (24.164.240.217) 
4 28.85 ms be22.gnfdwibb01r.midwest.rr.com (65.31.113.6) 
5 30.93 ms bu-ether16.chcgildt87w-bcr00.tbone.rr.com (66.109.6.204) 
6 33.18 ms bu-ether11.chctilwc00w-bcr00.tbone.rr.com (66.109.6.21) 
7 77.75 ms 4.28.83.74 
8 69.48 ms ip-184-168-0-117.ip.secureserver.net (184.168.0.117) 
9 83.20 ms ip-104-238-65-158.ip.secureserver.net (104.238.65.158) 
+0

Сверху, тайм-аут соединения TCP, вы действительно хотите удалить свой идентификатор клиента и пароль из первого и последнего фрагментов кода образца. И вообще просто измените его, если он настоящий. – favoretti

+1

Если вы наберете «telnet dns.godaddy.com 443» с вашего терминала, вы получаете соединение? – favoretti

+0

Интересно. telnet dns.godaddy.com 443 также производит соединение, ограниченное как на Linux, так и на компьютерах Windows в моей локальной сети, а при переходе на http://dns.godaddy.com или https://dns.godaddy.com в браузере " сайт не может быть достигнут ". Кажется, что dnsodaddy.com не слушает 80 или 443. Я свяжусь с поддержкой Go Daddy для подтверждения. – JeremyCanfield

ответ