Ich habe den folgenden Code zu ping meine ddns hostname und zurück, wenn der Host ist nach oben oder unten. Ich versuchte dann, die socket.gethostbyname
hinzuzufügen, die für meinen normalen hostname www.iamsimonsmale.co.uk
arbeitet, aber nicht http://ssmale.ddns.net
.socket.ghethostbyname funktioniert nicht für meine ddns hostname
Ich habe versucht, die http://
vom Anfang der Adresse zu entfernen, und dies schlägt auch fehl.
#!/usr/bin/env python
# This script checks to see if the server is up or down and prints the pinged IP
import requests
import socket
import time
while True:
host = 'http://ssmale.ddns.net'
ip = socket.gethostbyname(host)
print ip
response = requests.get(host)
if response.status_code == requests.codes.ok:
print('Server Up')
else:
print('Server Down')
time.sleep(10)
die Fehlermeldung für http://ssmale.ddns.net
ist
Traceback (most recent call last):
File "PingTestIP.py", line 12, in <module>
ip = socket.gethostbyname('http://ssmale.ddns.net')
socket.gaierror: [Errno -2] Name or service not known
und für ssmale.ddns.net
ist
Traceback (most recent call last):
File "PingTestIP.py", line 16, in <module>
response = requests.get(host)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 60, in get
return request('get', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 49, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 443, in request
prep = self.prepare_request(req)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 374, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "/usr/lib/python2.7/dist-packages/requests/models.py", line 304, in prepare
self.prepare_url(url, params)
File "/usr/lib/python2.7/dist-packages/requests/models.py", line 358, in prepare_url
"Perhaps you meant http://{0}?".format(url))
requests.exceptions.MissingSchema: Invalid URL u'ssmale.ddns.net': No schema supplied. Perhaps you meant http://ssmale.ddns.net?
und wenn Sie fertig sind mit `www.iamsimonsmale.co.uk es funktioniert und der Druck ist
86.136.251.202
Server Up
Ich habe auch versucht, den Code von How do I get the IP address from a http request using the requests library? ohne Erfolg zu verwenden.
Mit diesem Tool (http://mxtoolbox.com/SuperTool.aspx#) i bestätigt, dass es eine A-Eintrag im DNS für ssmale.ddns.net
Was das Problem verursacht und wie würde ich es beheben?
Betrachten Sie es jetzt offensichtlich. Ich dachte nicht daran, beides zu benutzen. Vielen Dank für Ihre Hilfe – TheStudent
@TheStudent Es ist im Nachhinein immer offensichtlicher. Froh, dass ich helfen konnte. – margold