python dig 시 뮬 레이 션-DGA 도 메 인 이름 판정 용
#!/usr/bin/env python
import dns.resolver, sys
def get_domain_ip(domain):
"""Get the DNS record, if any, for the given domain."""
dns_records = list()
try:
# get the dns resolutions for this domain
dns_results = dns.resolver.query(domain)
dns_records = [ip.address for ip in dns_results]
except dns.resolver.NXDOMAIN as e:
print "the domain does not exist so dns resolutions remain empty. domain:", domain
except dns.resolver.NoAnswer as e:
print "the resolver is not answering so dns resolutions remain empty, domain:", domain
return dns_records
hostname = sys.argv[1]
print "Recursive name lookup (simulates dig)..."
n=hostname
try:
while True:
for rdata in dns.resolver.query(n, 'CNAME') :
print n, "cname is", rdata
n=rdata.target
except:
print get_domain_ip(n)
예 를 들 면:
python dig_ip.py 8264.com Recursive name lookup(simulates dig)...8264.com cname 은 qaz2d84guo7uz5q2.gfnormal01at.com 입 니 다.[u'121.29.18.91']=>IP 주소
python dig_ip.py www.baidu.com Recursive name lookup(simulates dig)...www.baidu.com cname is www.a.shifen.com.www.a.shifen.com.cname is www.wshifen.com.[u'103.235.46.39',u'103.235.46.40']=>IP 주소
검색 결과 가 없 는 DGA 도 메 인 이름:
python dig_ip.py s09xo3-l5domek9ck5ct3go4m.comRecursive name lookup (simulates dig)...the domain does not exist so dns resolutions remain empty. domain: s09xo3-l5domek9ck5ct3go4m.com[]
그 중에서 dns.resolver.NoAnswer 는 분류 오류 가 발생 했 을 때 이 이상 을 뛰 어 냅 니 다.예 를 들 어:
python dig_ip.py www.baidu.comRecursive name lookup (simulates dig)...www.baidu.com cname is www.a.shifen.com.www.a.shifen.com. cname is www.wshifen.com.The DNS response does not contain an answer to the question: www.wshifen.com. IN CNAME
마지막 으로 코드 재 구성:
#!/usr/bin/env python
import dns.resolver, sys
def get_domain_ip(domain):
"""Get the DNS record, if any, for the given domain."""
dns_records = list()
try:
# get the dns resolutions for this domain
dns_results = dns.resolver.query(domain)
dns_records = [ip.address for ip in dns_results]
except dns.resolver.NXDOMAIN as e:
print "the domain does not exist so dns resolutions remain empty. domain:", domain
except dns.resolver.NoAnswer as e:
print "the resolver is not answering so dns resolutions remain empty, domain:", domain
return dns_records
def dig_ip(n):
try:
while True:
for rdata in dns.resolver.query(n, 'CNAME') :
print n, "cname is", rdata
n=rdata.target
except Exception as e:
print e
return get_domain_ip(n)
if __name__ == "__main__":
print "Recursive name lookup (simulates dig)..."
print dig_ip(sys.argv[1])
다음으로 전송:https://www.cnblogs.com/bonelee/p/8675078.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.