scapy summary DNS Ans

时间:2014-01-27 22:11:49

标签: python scapy

当我做的时候

.summary()

scapy我得到以下结果

'DNS Ans "ee-in-f139.1e100.net."' 

scapy中是否有任何只返回

的过滤器
"ee-in-f139.1e100.net" 

或者我是剥离字符串的唯一选择吗?

@ RyPeck

此刻

get hostname(ip):

    ip = x.split('.')
    ip.reverse()
    x = '.'.join(ip) + ".in-addr.arpa"

    answer = sr1(IP(dst="8.8.8.8")/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname= ip , qtype='PTR')), verbose = 0)
    filter = answer[DNS].summary()
    filter = filter.strip('DNS Ans ')
    filter = filter.strip('."')

它给了我主机名,我过滤掉了DNS Ans。我希望scapy只返回主机名而不过滤它。

1 个答案:

答案 0 :(得分:2)

不确定

def gethostname(ip):
    ip = ip.split('.')
    ip.reverse()
    ip = '.'.join(ip) + ".in-addr.arpa"
    answer = sr1(IP(dst="8.8.8.8")/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname= ip , qtype='PTR')), verbose = 0)
    #answer.show()
    return answer["DNS"].an.rdata[:-1]

我做了什么: 我没有使用.summary(),而是反汇编答案:["DNS"]给出了dns图层,.an给出了给出的答案,.rdata是您想要的实际数据,并且[:-1]剥离最后一个点,因为,如RFC1034中所指定的,完全限定域名(FQDN)始终以尾随.结束。如果您想查看整个数据包,则应该取消注释anser.show()