文档章节

Erlang的Inet configuration

光风霁月
 光风霁月
发布于 2014/05/28 13:40
字数 722
阅读 70
收藏 0

    通常情况下(网络配置正确的主机),不需要为Erlang配置Inet。如果你有特别的需要,或你有特别的问题,才可能用到Inet配置。

    Erlang运行的时候会读一个kernel变量,inetrc。如果它被定义了,它就是指定一个配置文件的位置。

    可以有两种方式设置这个变量:

        1) 在erlang shell的选项里指定;

        2) 在环境变量ERL_INETRC里指定。

    erlang shell选项指定的会覆盖环境变量指定的。启动shell时指定的例子:

erl -kernel inetrc '"./cfg_files/erl_inetrc"'

    注意:用单引号把位置字符串括起来。如果没有指定inetrc变量,则使用缺省值。

    Erlang将会记录以下的网络配置信息(从系统文件或注册表读取)

       1) 主机名和地址的映射
       2) 本地主机域名
       3) DNS服务器
       4) 搜索域
       5) 查看方式

    调用inet:get_rc可以查看网络配置信息,例如:

(A@john-kdm.kdcrd.com)1> inet:get_rc().
[{host,{127,0,0,1},["localhost","john.server","msn.test"]},
 {host,{192,168,1,99},["lemon.test"]},
 {domain,"kdcrd.com"},
 {search,["kdcrd.com"]},
 {lookup,[native]}]
(A@john-kdm.kdcrd.com)2>

   上诉例子中记录了2个host(包括ip地址和主机名),本地主机所属的域名是kdcrd.com,搜索域是[kdcrd.com],查看方式是native。

    搜索域作用,如果你要解析的名称不以'.'结束,解析器会按照要解析的名称+搜索域尝试解析。例如,搜索域为example.net, example.com,待解析的名称为tom,则解析器会尝试解析tom.example.net,如果失败,再尝试解析example.com。

    lookup有三种方式,native(默认的), file, dns。native是指用系统调用的方式解析域名,file是从系统文件里记录的host来解析,dns则使用dns client从dns服务器获取域名解析。

    一份inet配置文件的例子:

%% -- ERLANG INET CONFIGURATION FILE --
%% read the hosts file
{file, hosts, "/etc/hosts"}.
%% add a particular host
{host, {134,138,177,105}, ["finwe"]}.
%% do not monitor the hosts file, because file path is empty, the file not exists
{hosts_file, ""}.
%% read and monitor nameserver config from here
{resolv_conf, "/usr/local/etc/resolv.conf"}.
%% enable EDNS
{edns,0}.
%% disable caching
{cache_size, 0}.
%% specify lookup method
{lookup, [file, dns]}.

   从例子中可以看出,配置由多行语句组成,每行是一个元组项式,并且以'.'号结束。


{edns, Version}.
    Version = false | 0
    0使用edns,false不使用(缺省值)

  udp方式的dns通常结果最多是512个字节,edns就是指示dns server返回较大的结果,通常是在4096字节内。

{usevc, Bool}.
    Bool = true | false
    告诉客户端用tcp方式,而不是udp方式请求。 缺省值是false。

   通常udp方式的应答足够带回来结果,但是在有些情况下不够,应答里会带上truncated标志,表示结果被截断。客户端会再次以tcp的方式请求。{usevc, true}就是告诉客户端直接以tcp方式请求。

© 著作权归作者所有

上一篇: gen_fsm
下一篇: erlang节点的启动
光风霁月
粉丝 8
博文 12
码字总数 7051
作品 0
闵行
程序员
私信 提问
Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结

知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。 如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的...

长平狐
2013/01/06
486
0
Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结

知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。 如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的...

晨曦之光
2012/03/02
1K
0
关于PF_INET和AF_INET的区别

http://blog.csdn.net/xiongmaojiayou/article/details/7584211 在写网络程序的时候,建立TCP socket: sock = socket(PFINET, SOCKSTREAM, 0); 然后在绑定本地地址或连接远程地址时需要初始...

zzx90
2018/06/29
0
0
inet_pton和inet_ntop函数

Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换 而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pton函数原型如下[将...

长平狐
2012/09/03
629
0
简单谈一点linux内核中套接字的bind机制--数据结构以及端口确定

众所周知,创建一个套接字可以bind到一个特定的ip地址和端口,实际上套接字这一概念代表了TCP/IP协议栈的应用层标识,协议栈中的应用层就是通过一个ip地址和一个端口号标识的,当然这仅仅是对...

晨曦之光
2012/04/10
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.1K
14
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部