python 域名解析,python可以模拟dns劫持吗

阅读(133)发布于 2023-09-25

至此准备工作已准备完成,下一篇将自己搭建IP请求接口 dnspython模块使用 importsys importsocket importdns.resolver print'ArgumentList:',str site=sys.argv[1] dns_server=sys.argv[2] #BasicCNAMEquerythehost'sDNS forrdataindns.resolver.query: printrdata.target #BasicAquerythehost'sDNS forrdataindns.resolver.query: printrdata.address ###下边是制定dns解析的服务器设置 #SettinganspecificDNSServer resolver=dns.resolver.Resolver() resolver.nameservers=[socket.gethostbyname] #BasicCNAMEquerywiththespecificDNSserver answer=resolver.query; forrdatainanswer: printrdata.target #BasicAquerywiththespecificDNSserver answer=resolver.query; forrdatainanswer: printrdata.address Torun: pythondnsdig.pywww.youtube.com8.8.8.8 Python获取url中域名及从域名中提取ip的方法 这种方法为从urlparse模块中通过urlparse方法提取url通过hostname属性获取当前url的域名。python可以模拟dns劫持吗 dns劫持就是修改域名的解析地址,最简单的就是再hosts文件里添加下对应的解析。

配图

开一篇新文集,最终实现目标:动态域名解析,,,原因是用宝塔面板里的动态域名解析需要5块钱一个月,,,本着能不花钱就不花钱的原则自行解决动态域名解析问题。

众所周知由于运营商的IP数量限制,申请了公网IP的人虽然是公网IP但是为了保证使用,这个IP地址就会经常不定时变更,那么就需要重新解析域名,这就造成了非常麻烦的操作,那么DDNS就是为了解决这个问题而生

本文一篇可能写不完所以分几小篇进行实现,第一篇先解决准备问题。

至此准备工作已准备完成,下一篇将自己搭建IP请求接口

importsys

importsocket

importdns.resolver

print'ArgumentList:',str(sys.argv)

site=sys.argv[1]

dns_server=sys.argv[2]

#BasicCNAMEquerythehost'sDNS

forrdataindns.resolver.query(site,'CNAME'):

printrdata.target

#BasicAquerythehost'sDNS

forrdataindns.resolver.query(site,'A'):

printrdata.address

###下边是制定dns解析的服务器设置

#SettinganspecificDNSServer

resolver=dns.resolver.Resolver()

resolver.nameservers=[socket.gethostbyname(dns_server)]

#BasicCNAMEquerywiththespecificDNSserver

answer=resolver.query(site,'CNAME');

forrdatainanswer:

printrdata.target

#BasicAquerywiththespecificDNSserver

answer=resolver.query(site,'A');

forrdatainanswer:

printrdata.address

Torun:(命令执行)

pythondnsdig.pywww.youtube.com8.8.8.8

这种方法为从urlparse模块中通过urlparse方法提取url通过hostname属性获取当前url的域名。

此方法是通过urllib模块中splittype方法先从url中获取到proto协议及rest结果,然后通过splithost从rest中获取到host及rest结果,此时host为域名。(rest被分割了两次)如下图:

此方法为从sokcet模块中获取到gethostbyname方法将域名传递进去就能解析出域名的ip。

此方法为通过nslookup获取域名的ip。

以上从域名中提取ip会不准确,需要设置DNS服务器,这样解析域名就准确了。

dns劫持就是修改域名的解析地址,最简单的就是再hosts文件里添加下对应的解析。

再复杂点就是自己搭建一个dns服务器,然后把本机的dns设置过去。

如果用python模拟的化就更简单了,只要弄个字典,写上对应关系,比如:

dns={'www.baidu.com':'192.168.1.4'}

#如果查询百度的时候,换成对应的ip值进行查询就可以了

如果解决了您的问题请采纳!

如果未解决请继续追问

以上就是关于python 域名解析的解答,如果对你有帮助,不妨关注本站,本站将为你整理更多内容。