erlang实现DNS解析域名

  erlang的DNS解析,有个inet模块,可以做这个事情,对应的api如下:(这里用的R16B的版本)

inet:getaddr/2解析对应一个ip,而inet:getaddr/2解析有可能对应1个或多个映射的IP. 第一个参数为host域名,第二个参数是ipv4或ipv6.

如下图:

  

简单写了下测试代码,直接上代码:

enter() ->
        [ resolve(Host) || Host <- domains()].

%%域名列表
domains() -> ["www.baidu.com","www.china.com",
              "www.sohu.com","www.msn.com"].        

resolve(Host) ->
    %%DNS解析,通过域名解析对应一个IP值
    IP   = case inet:getaddr(Host,inet) of
                {ok,{IP1,IP2,IP3,IP4}} -> combin_ip(IP1,IP2,IP3,IP4);
                {error, Reason} -> throw(Reason)
           end,
    inets:start(),
    httpc:request(IP).    

%%拼接IP
combin_ip(IP1,IP2,IP3,IP4) ->
        "http://" ++ integer_to_list(IP1) ++ "." ++ integer_to_list(IP2) ++
        "." ++ integer_to_list(IP3) ++ "." ++ integer_to_list(IP4).

运行结果如下:

  

做了多个域名的解析,解析成IP后,再用erlang内部封装的inets模块(轻量级http的框架),去分别做http的请求.

erlang实现DNS解析域名

时间: 2024-10-13 00:51:20

erlang实现DNS解析域名的相关文章

DNS解析域名的过程

一.DNS解析域名的过程 1.大的过程可分为三步: (1).在缓存中查找是否之前解析过 (2).在windows系统的host文件中查找 (3).请求DNS服务器 2.小的过程可分为十步: (1).浏览器先检查自己自身有没有解析过该域名,若是解析过直接拿到之前缓存的ip,解析结束.域名被缓存的时间也可通过TTL属性来设置. (2).如果浏览器中没有,会再去找操作系统中的hosts文件,里面有配置好的域名地址及ip,查看该域名是否有对应的ip,若是有,那浏览器会首先使用这个ip地址. 如图: 像这

DNS解析域名过程

DNS解析域名过程 使用域名转换成IP地址,先读取本地HOST文件,本地文件没有从当前电信网管获取对应IP. 本地host文件 C:\Windows\System32\drivers\etc 画图演示. 原文地址:https://www.cnblogs.com/zhouwen2017/p/10455561.html

强烈建议使用国外DNS解析域名,解决访问速度和某些访问故障!

域名解析的基本原理是把域名翻译成IP地址,以便计算机能够进一步通信,传递网址和内容等. 域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址. 这可能会导致一系列安全问题,导致经济损失. TMD!出于不可告人的目的,国内网络运营商(特别是电信)通过使用DNS劫持的方法,广告泛滥,干扰用户正常上网,使得用户无法访问Google.Gmail.Google Ad

被动信息收集1——DNS基础 + DNS解析工具 NSLOOKUP使用

被动信息收集 特点: 基于公开渠道 与目标不直接接触 避免留下一切痕迹 标准参考--OSINT: 美国军方 北大西洋公约组织 名词解释 DNS--Domain Name System 域名系统 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RF

能Ping通,能DNS解析,不能打开网页(登陆QQ等)的解决办法

悲了个催,昨天的一次意外断电关机,导致操作系统再也无法访问Internet,具体表现为: 1.Ping地址正常,能ping通任何本来就可以ping通地址,如网关.域名. 2.能DNS解析域名. 3.无法打开网页,感觉是网页打开的一瞬间就显示无网络连接. 4.只需要连接ip地址.无需dns接些的程序都是无法连接,如QQ. 折腾了很久,通过重启路由.sfc修复命令.重装驱动.更换网络等方式修复均无果,郁闷了,只好启动很久以前安装在移动硬盘中的备用系统,结果发现在该系统下,网络正常.不知怎么的想起很久

Linux性能优化实战:案例篇-DNS 解析时快时慢,我该怎么办?(37)

一.上节回顾 上一节,我带你一起学习了网络性能的评估方法.简单回顾一下,Linux 网络基于 TCP/IP协议栈构建,而在协议栈的不同层,我们所关注的网络性能也不尽相同. 在应用层,我们关注的是应用程序的并发连接数.每秒请求数.处理延迟.错误数等,可以使用 wrk.Jmeter 等工具,模拟用户的负载,得到想要的测试结果. 而在传输层,我们关注的是 TCP.UDP 等传输层协议的工作状况,比如 TCP 连接数.TCP 重传.TCP 错误数等.此时,你可以使用 iperf.netperf 等,来测

【转】一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的DNS服务器呢!如果不是,当我访问我的这个域名的时候,电脑怎么知道去找到我注册的这一家的DNS服务器呢,谁告诉他的呢?

看看DNS一些基础知识,你就了解了.1.DNS就是域名服务器,他的任务就是确定域名的解析,比如A记录MX记录等等. 2.任何域名都至少有一个DNS,一般是2个.为什么要2个以上呢?因为DNS可以轮回处理,第一个解析失败可以找第二个.这样只要有一个DNS解析正常,就不会影响域名的正常使用. 3.如何确定域名的DNS?很简单到http://www.internic.net/whois.html输入你要查询的域名就可以看到了.这个是国际域名管理中心.唯一的权威.只要这里能查到某个域名,就表示域名是生效

解释-DNS,A记录,CNAME记录,域名转向,SRV记录,TTL值,泛域名与泛解析,域名绑定

http://www.lihongye.net/post/dns.html DNS DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务).域名系统为Internet上的主机分配域名地址和IP地址.由于网络中的计算机都必须有个IP地址,来识别,互相之间才能通信,但让我们记住一大串的IP地址来访问网站显然是不可能的,所以用户使用域名地址,而DNS系统的功能就是自动把域名地址翻译为IP地址.域名服务是运行域名系统的Internet工具.执行域名

减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名

我们知道在用户访问网站时先得经过域名DNS解析这一过程,可能很多人对于DNS解析时间平常并没有太在意.性能稳定.响应时间快的DNS域名解析服务与不稳定.响应过慢的DNS的域名解析时间可能相差1秒,而对于网站存在过多的域名解析请求,这个时间积累起来就非常地多了. 本篇文章就来分享一下通过优化网站DNS域名解析,减少域名DNS解析时间,从而让网站在原来的访问速度的前提下继续实现新的飞跃.想要了解更多的有关于网站和服务器优化加速的方法,可以试试: 1.加快SSL:Nginx和Apache上安装SPDY