Распаковать список типов даже после передачи кортежа [дубликат]

Используйте этот параметр

// table[0] == 1st row
// table[1] == 2nd row
// etc..

for(int i = 0; i < table[1].length; i++) 
    System.out.println(table[1][i]); // Print each item of the 2nd row
16
задан Grumdrig 8 March 2011 в 18:01
поделиться

2 ответа

Вполне возможно вызвать dig от python, это, вероятно, спасет вас от работы, чтобы просто использовать библиотеку python. Взгляните на dnspython , который, вероятно, сделает все проще - плюс вам не нужно разбирать выходной формат.

import socket
import dns.resolver

# Basic query
for rdata in dns.resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target

# Set the DNS Server
resolver = dns.resolver.Resolver()
resolver.nameservers=[socket.gethostbyname('ns1.cisco.com')]
for rdata in resolver.query('www.yahoo.com', 'CNAME') :
    print rdata.target
39
ответ дан koblas 19 August 2018 в 05:25
поделиться
  • 1
    +1: Это лучшее и самое элегантное решение! – jathanism 8 March 2011 в 20:09
  • 2
    Это прекрасно работает, спасибо! – Christopher Long 9 March 2011 в 11:45
  • 3
    Просто для уточнения, #sbasic запрос просто проверить, что ваши отчеты isp и #set DNS-сервер проверить, что сервер имен сообщает? – Christopher Long 9 March 2011 в 12:28
  • 4
    В базовом запросе используются ваши серверы имен по умолчанию /etc/resolv.conf, в то время как в Set-версии вы можете указать, какой сервер имен для вызова. – koblas 9 March 2011 в 14:16
  • 5
    Это должно быть dnspython вместо dynpython. но ограничение 6 символов в SO не позволяет мне отредактировать ответ выше. – Yudong Li 4 June 2013 в 06:00

os.system устарел. Используйте подпроцесс .Popen :

import subprocess
import shlex

cmd='dig @ns1.netnames.net www.rac.co.uk +short'
# cmd='dig @ns1.netnames.net www.rac.co.uk CNAME'
proc=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE)
out,err=proc.communicate()
print(out)
# rac-secure.gslb.norwichunion.com.
4
ответ дан unutbu 19 August 2018 в 05:25
поделиться
  • 1
    Я получаю довольно большую ошибку при попытке выполнить это: Traceback (последний последний вызов): File & quot; C: /Users/Chris/Documents/work/python/cname.py" ;, строка 5, в & lt; модуль & GT; proc = subprocess.Popen (shlex.split (cmd), stdout = subprocess.PIPE) Файл «C: \ Python26 \ lib \ subprocess.py», строка 623, в _init_ errread, errwrite) Файл «C: \ Python26» \ lib \ subprocess.py & quot ;, строка 833, в _execute_child startupinfo) WindowsError: [Ошибка 2] Система не может найти указанный файл – Christopher Long 8 March 2011 в 18:33
  • 2
    Ошибка: [Error 2] The system cannot find the file specified подразумевает (или, по крайней мере, предполагает), что у вас нет исполняемого файла с именем dig. – unutbu 8 March 2011 в 20:12
  • 3
    Ах, я просто попробовал это на работе, и он отлично работает, должен быть чем-то связанным с моим домашним рабочим столом. Спасибо. – Christopher Long 9 March 2011 в 12:30
Другие вопросы по тегам:

Похожие вопросы: