Faire une résolution DNS sur un nom d'hôte unicode-retour ce qui suit:Convert ` 195 ` u 164` pour ' xc4'` - résultat du résolveur DNS Retour à unicode
'\195\164\195\182\195\188o.mydomain104.local.'
Le \195\164
est en fait la lettre unicode suivante: Ä
(u'\xc4'
).
Le nom d'hôte d'origine est:
ÄÖÜO.mydomain104.local
Je suis à la recherche d'un moyen de le reconvertir à la chaîne unicode (en python2.7)
Dans le cas où le code d'origine est nécessaire, il est quelque chose comme ce qui suit:
from dns import resolver, reversename
from dns.exception import DNSException
def get_name(ip_address):
answer = None
res = resolver.Resolver()
addr = reversename.from_address(ip_address)
try:
answer = res.query(addr, "PTR")[0].to_text().decode("utf-8")
except DNSException:
pass
return answer
je regardais les deux
.encode
et.decode
, leunicodedata
lib etcodecs
et n'a rien trouvé qui a fonctionné.
Ce n'est pas un nom DNS valide, les lettres internationales dans DNS doivent être codées en punycode ('xn --...'). Alors, comment avez-vous récupéré ces données? –
@KlausD. merci pour la réponse, ajouté le code python utilisé là ... – Dekel
S'il vous plaît poster 'repr (get_name (ip_address))' afin que nous sachions exactement quelle 'str' nous traitons. – unutbu