Comments (30)
i too had connection problems for 10 hours. It seems like something to do with godaddy and its unstable services. After 10 hours of agony, module works to normal.
from pygodaddy.
Mine started failing yesterday and hasn't recovered yet. It runs hourly.
On 6/17/2015 9:10 PM, PointP wrote:
i too had problems with connection for 10 hours. It seems like it is
something to do with godaddy and its unstable services. After 10 hours
of agony, module works back as before.—
Reply to this email directly or view it on GitHub
#12 (comment).
from pygodaddy.
My last succesfull Domain Record change was on 2015-06-17 4am,
Since 2015-06-18 4am it fails everyday
from pygodaddy.
I had mine running from the cron.hourly schedule which was running at 01
minutes of every hour so it's not just 00 they're blocking. I was able
to manually run it at other minutes in the hour. Maybe they tracked IPs
logging in at the same time over and over and blocked that specific
time. Who knows. Hopefully using your random setting will help out a
lot. Thanks for that.
On 6/19/2015 12:30 AM, PointP wrote:
@getSurreal https://github.com/getSurreal i experience same thing
during 2015-06-18 01:00:09,524 Until now. After I test few things
around, i noticed that they cut down 00 minutes connection. Which by
the way, very stupid move from goDaddy. I changed my crontab setting
to something like following and it works just fine. Try it.*/10 * * * * sleep $(expr $RANDOM % 90); /.../godaddy-dyndns.sh
P.S. you don't have to use random delay on.
—
Reply to this email directly or view it on GitHub
#12 (comment).
from pygodaddy.
I noticed that many deals with none-working script recently.
I told few people about random timing and killing connection from godaddy earier.
However, it turns out something little bit different from what I originally thought.
Here is what is going on with script.
When you use login function from client.py, it goes to "r = self.session.get(self.default_url)"
default_url is "https://dns.godaddy.com/default.aspx" and if you try to connect this address with
anything (web browser and so on...) first connection is always returns the error.
Probably, many already see something like this in their running:
"requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError ..."
This is part where goDaddy just kill your connection.
So how come some of lucky ones able to keep use this script?
If you execute same script one more time right after the first one, it will work just fine.
I think "they" store request information and verify it for next connection until around 15 minutes(not fully tested... around that area for sure) or so.
That is why "hourly" people just simply not worked at all... I feel sorry to you guys...
Here is what i come up with
I would do something like this in client.py line 99
for i in range(0, 10):
while True:
try:
r = self.session.get(self.default_url)
except:
time.sleep(1)
continue
break
instead of
r = self.session.get(self.default_url)
As you can see, it is just looping until connection works. That is very much all of it
Good luck to all.
from pygodaddy.
Thanks for that update recommendation. Wouldn't it also be better to only login if the record actually needs to be updated?
Thanks,
James
On Jun 23, 2015, at 4:22 AM, PointP [email protected] wrote:
I noticed that many deals with none-working script recently.
I told few people about random timing and killing connection from godaddy earier.
However, it turns anout something little bit different from what i originally thought.Here is what is going on with script.
When you use login function fro client.py, it goes to "r = self.session.get(self.default_url)"
and default_url is "https://dns.godaddy.com/default.aspx" and if you try to connect this address with
anything (webbrowser and so on...) first connection is always returns the error.Probably, many already see something like this in their running:
"requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError ..."
This is part where goDaddy just kill your connection.
So how come some of lucky ones able to keep use this script?
If you execute same script one more time right after the first one, it will work just fine.
I think they store request infomation and vertify it for next connection for around 10 minutes(not fully tested... around that area for sure) or so.That is why "hourly" people just simply not worked at all... I feel sorry to you guys...
Here is what i come up with
I would do something like this in client.py line 99
for i in range(0, 10): while True: try: r = self.session.get(self.default_url) except: time.sleep(1) continue break
instead of
r = self.session.get(self.default_url)
As you can see, it is just looping until connection works. That is very much all of it
Good luck to all.
—
Reply to this email directly or view it on GitHub.
from pygodaddy.
@getSurreal Yeap it does that already. Update suggestion line is connection verification part of login function. Cheers.
from pygodaddy.
@PointP when I was getting failures every hour, my IP had not changed so that makes me believe it tries to login every time.
Thanks,
James
On Jun 23, 2015, at 8:40 PM, PointP [email protected] wrote:
@getSurreal Yeap it does that already. Update suggestion line is connection verification part of login function. Cheers.
—
Reply to this email directly or view it on GitHub.
from pygodaddy.
Hey,
I'm trying to set up an update script for hours until i found this issue thread. I edited the client.py as @PointP suggested, but authentification is still not working for me. Any suggestions to fix this issue? I recently moved to godaddy and dyndns would be really nice.
Thanks in advance
from pygodaddy.
This is how I solved it:
Log into godaddy with a browser on pc with the same external ip as the server and then run the script. Now pygodaddy can login and change the A record. To keep it up working, i think you have to run the script every 5min or so. It's working with and without the suggested fix from @PointP.
from pygodaddy.
@gerrit507 sorry for late reply on your comment. Tour approach is valid as well. For me, validation time is longer than 5 minutes. Well anyway main idea is run script twice in a row
from pygodaddy.
@PointP run script twice in a row does not work for me. I had to log into godaddy in a browser via the same external ip as the server has, otherwise there was no authentifaction possible via the script, even with 10 attempts in a row. Maybe somebody can reproduce this issue...
from pygodaddy.
Even after logging in from web browser, the script is failing. I've tried running multiple times as well, to no avail. This just started happening for me within the last 24 hours (8/21/15).
Edit: here is the output showing where it is failing now.
ERROR:pygodaddy.client:Login routine broken, godaddy may have updated their login mechanism
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pygodaddy/client.py", line 101, in login
viewstate = re.compile(r'id="__VIEWSTATE" value="([^"]+)"').search(r.text).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
from pygodaddy.
@dawg6 Same problem here!
from pygodaddy.
Same problem. godaddy definitely changed their login mechanism.
Does somebody maintain this code nowadays?
from pygodaddy.
Same problem
from pygodaddy.
I have updated my code and got it working with the new login mechanism, I've forked the repo and updated the code to work. I am in Australia and I've noticed the URL's I used have region information in them, you may want to update this to use your region in 'client.py'. I've left comments of what has been changed.
https://github.com/BryceGough/pygodaddy
from pygodaddy.
Can confirm that it works!
Thanks!
from pygodaddy.
Thank you BryceGough!!!
It works.
from pygodaddy.
Getting the same code as BryceGough... Thanks !
Make a pull request to fix this upstream.
from pygodaddy.
Well, how to get this to work?
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
from pygodaddy.
Ah..
"InsecurePlatformWarning
New in version 1.11.
Certain Python platforms (specifically, versions of Python earlier than 2.7.9) have restrictions in their ssl module that limit the configuration that urllib3 can apply. In particular, this can cause HTTPS requests that would succeed on more featureful platforms to fail, and can cause certain security features to be unavailable.
If you encounter this warning, it is strongly recommended you upgrade to a newer Python version, or that you use pyOpenSSL as described in the OpenSSL / PyOpenSSL section.
If you know what you are doing and would like to disable this and other warnings, please consult the InsecureRequestWarning section for instructions on how to handle the warnings."
from pygodaddy.
Here I post my ipUpdate.py what I refreshed to python3 (because of that "InsecurePlatformWarning").
#!/usr/bin/env python3 # -*- coding:utf8 -*- import logging import pif import pygodaddy logging.basicConfig(filename='godaddy.log', format='%(asctime)s %(message)s', level=logging.INFO) GODADDY_USERNAME="egyetemijegyzet" GODADDY_PASSWORD="pRoVisT@66" client = pygodaddy.GoDaddyClient() client.login(GODADDY_USERNAME, GODADDY_PASSWORD) logging.debug("Started: before 'for'") for domain in client.find_domains(): dns_records = client.find_dns_records(domain) # Old ip.. old_ip = list(dns_records)[0].value # 'New' ip! public_ip = pif.get_public_ip() # Some loggings and printing logging.debug("Domain '{0}' DNS records: {1}".format(domain, old_ip)) print("Domain '{0}' DNS records: {1}".format(domain, old_ip)) if public_ip != old_ip: if client.update_dns_record(domain, public_ip): logging.info("Domain '{0}' public IP set to '{1}'".format(domain, public_ip)) print ("Domain '{0}' public IP set to '{1}'".format(domain, public_ip)) else: pass # What to do here? .. else: logging.info("No update needed.") print ("No update needed.")
from pygodaddy.
Remove your password :)
from pygodaddy.
Yeah thanks, maybe minus zero people want to steal this domain name but yeah :) I changed my pass to a cooler one. I owe you a beer! :P
from pygodaddy.
Heads up @adamt1988 your issue is about InsecurePlatformWarning is probably unrelated. You need to pip install requests[security]. That should fix your problem. Depending on your platform you may need dependencies like openssl-devel and libffi-devel (CentOS).
from pygodaddy.
Also, Thank you @claneys, you keep my network running and saved me a lot of time!!!!!!
from pygodaddy.
@observerss Could you please merge @brycegough's patch to the upstream and release a new version?
from pygodaddy.
@observerss 👍 Please merge #13
from pygodaddy.
@adamt1988 thanks for your password. btw does it work with your email and fb too?
from pygodaddy.
Related Issues (14)
- Remove 'Anthony.Wu' as PyPI maintainer
- GoDaddy updated it's login (again) HOT 4
- Update Hostnames?
- CANNOT login to GoDaddy HOT 22
- Quick Start HOT 1
- Error in method _save_records() HOT 2
- Login issue, again.
- bas handshake/connection reset error HOT 1
- Can't seem to connect to dns.godaddy.com HOT 28
- Login fails because SSL Certificate cannot be verified HOT 1
- update_dns_record returns false for either failures or no change required
- .co.uk domains not updating
- pygodaddy no longer updates dns A records. HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pygodaddy.