- 外文名
- bind
- 词 性
- 及物动词、不及物动词、名词
-
BIND
2018-08-29 19:42:08现今使用最为广泛的DNS服务器软件就是Bind(Berkeley Internet Name Domain Service)。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的...现今使用最为广泛的DNS服务器软件就是Bind(Berkeley Internet Name Domain Service)。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,现在最新的版本是9,由ISC(Internet Systems Consortium)编写和维护。
BIND支持现今绝大数的操作系统(Linux、UNIX、Mac、Windows)
BIND服务器的名称称之为named
本例使用的环境是CentOS 7.0的Linux操作系统
我们可以通过以下命令安装BIND:
yum install -y bind
DNS默认使用UDP、TCP协议,使用端口号为53(domain),953(rndc)
相关包:
bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性。
bind-devel: 与开发相关的头文件和库文件(编译安装bind时所需)
bind-libs: bind服务器端和客户端都使用到的公共库文件
bind-utils : bind客户端工具
BIND配置文件
BIND配置文件保存在两个主要位置:
/etc/named.conf # BIND服务主配置文件
/var/named/ # zone文件
接下来我们开始配置我们的一个域的主服务器
域主服务器
一个域的主服务器(master)是这个域的信息的权威服务器,所有这个域的信息都是由域的主服务器控制,配置一个域的主服务器需要以下几个步骤:
1. 在bind的主配置文件中注释掉实验不用的部分
2. 在/var/named/中创建该域的zone文件
3. 添加资源记录文件,添加需要的信息
4. 给zone文件相应的权限以及所属用户
5. 启动bind服务或使bind更新配置并查看日志是否正常
6. 使用host或dig命令检测域信息是否正常
配置域主服务器
1. 修改bind主配置文件中添加域 lw.com 的定义:
vim /var/named/named.conf
# 把不需要的注释掉
2. 添加配置文件中的 lwabc.com 的定义:
vim /etc/named.rfc1912.zones
# 我们在最后一行加上lwabc的定义
zone "lwabc.com" IN {
type master;
file "lwabc.com.zone";
};3. 添加一个资源记录(RR):
zone文件比较复杂,手工输入容易输错,所以一般使用默认named.locahost配置文件作为模板:
[root@server1 ~]# cd /var/named/
[root@localhost named]# cp named.localhost lwabc.com.zone
[root@localhost named]# vim lwabc.com.zone# 邮件的MX 记录要放在前面
4. 给zone文件相应的权限
[root@localhost named]# chmod 640 lwabc.com.zone
[root@localhost named]# chown :named lwabc.com.zone5. 启动bind服务或刷新配置
[root@localhost named]# service named start # 启动服务
[root@localhost named]# ss -tunl |grep :53 # 查看端口53是否启动# 配置发生变化时都要reload,重启或刷新我一般都用service named reload
[root@localhost named]# tail /var/log/messages
使用命令host或dig验证dns配置:
语法:dig - t 资源记录类型 @服务器IP
# 这里暂时没有从服务、缓存服务器、转发服务器和相关ACL的配置。
# 后面的内容是学习笔记,可选择性查看。
定义转发服务器:
注意:被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行:
1.全部转发:凡是对非本机所有负责解析的区域进行请求,统统转发给指定服务器
具体格式:
Options{
forward { first|only }; #添加的时候没有{}
forwarders
};2.区域转发:仅转发对特定区域的请求至某服务器:
具体格式:
zone "ZONE-NAME" IN {
type forward;
forward { first|only }; # 添加的时候没有{}
forwarders { 主机名或IP }; # 添加的时候有{}
};bind中基础安全相关配置;
acl: 把一个或多个主机归并为一个集合,并进行一个统一的名称调用:
acl acl_name {
ip;
ip;
net/prelen;
};示例:
acl mynet {
192.168.0.0/24
};bind中有四个内置的acl:
none: 没有一个主机
any: 任意主机
local :本机
localnet: 本机的IP同掩码运算后得到的网络地址
-
redis bind not error
2020-03-31 22:50:30如果发生报错 Creating Server TCP listening socket 127.0.0.1:6379: bind: No error 那么执行: redis-cli.exe shutdown exit redis-server redis.windows.conf如果发生报错 Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
那么执行:redis-cli.exe
shutdown
exit
redis-server redis.windows.conf -
bind函数
2017-08-18 11:42:48学网络编程不得不提到bind函数,bind函数的作用不言而喻,就是给套接字取一个姓名。在生活中,姓氏代表家族,名表示你是家族的哪个人。在网络中也是这样,IP标识主机,进程标识端口。所以要给套接字绑定一个IP和端口...学网络编程不得不提到bind函数,bind函数的作用不言而喻,就是给套接字取一个姓名。在生活中,姓氏代表家族,名表示你是家族的哪个人。在网络中也是这样,IP标识主机,进程标识端口。所以要给套接字绑定一个IP和端口,不然谁认识你,特别是服务端。客户端随后说。
[mapan@localhost test]$ ls server.cpp [mapan@localhost test]$ cat server.cpp #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <malloc.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/ioctl.h> #include <stdarg.h> #include <fcntl.h> #include <sys/types.h> #include <sys/wait.h> #include <netinet/in.h> #include <arpa/inet.h> #include <signal.h> #define MAXLINE 4096 void main() { int listenfd,connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr,servaddr; listenfd=socket(AF_INET,SOCK_STREAM,0); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_addr.s_addr=htonl(INADDR_ANY); servaddr.sin_port=htons(8888); bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); listen(listenfd,5); getchar(); close(listenfd); } [mapan@localhost test]$ g++ server.cpp [mapan@localhost test]$ ./a.out
打开另外一个窗口:
[mapan@localhost ~]$ netstat -na | grep 8888 tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN [mapan@localhost ~]$
套接字绑定到IP为0.0.0.0,端口为8888。服务端的套接字是需要绑定的,为啥呢?服务端端嘛,提供的服务的,总要告诉别人提供服务地点在哪里,别人容易找啊,对就是这个道理。
-
PHP bindTo和bind
2018-05-28 16:25:09从手册知道,Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。 创建并返回一个 匿名函数, 它与当前对象的函数体相同、绑定了同样变量,但可以绑定不同的对象,也可以绑定新的类作用域。...从手册知道,Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。
创建并返回一个 匿名函数, 它与当前对象的函数体相同、绑定了同样变量,但可以绑定不同的对象,也可以绑定新的类作用域。
从我个人理解,和js里面的call函数有点类似。可以改变闭包对象指定的作用域。
示例1:
<?php class A { function __construct($val) { $this->val = $val; } function getClosure() { return function(){return $this->val;}; } } $ob1 = new A(1); $cl = $ob1->getClosure(); echo $cl(),"<br/>"; $ob2 = new A(2); $cl = $cl->bindTo($ob2); //闭包指定作用域在$ob2对象上。 echo $cl()."<br/>"; //2
示例2:
<?php header("Content-type:text/html;charset=utf-8"); class Yifang { public $title = '武汉亿房网'; public $tpl = 'tpl1.php'; } class Bentian { public $title = '东风本田'; public $tpl = 'tpl2.php'; } class views { public function render($obj) { $name = $obj->tpl; $closure = function() use($name){ include './tpl/'.$name; }; $closure = $closure->bindTo($obj); return $closure; } } $View = new views(); call_user_func($View->render(new Bentian())); call_user_func($View->render(new Yifang()));
分别对应的2个模板
1 <?php 2 //tpl1 3 4 echo '======================<br/>'; 5 echo $this->title."<br/>"; 6 echo '武汉江汉区<br/>'; 7 echo '==========================='; 8 9 ?> 10 11 <?php 12 //tpl2 13 14 echo '===========================<br/>'; 15 echo $this->title."<br/>"; 16 echo '屯口经济开发区<br/>'; 17 echo '==========================='; 18 19 ?>
BindClosure类摘要如下:
Closure { __construct ( void ) public static Closure bind (Closure $closure , object $newthis [, mixed $newscope = 'static'] public Closure bindTo (object $newthis [, mixed $newscope = 'static' ]) }
方法说明:
Closure::__construct — 用于禁止实例化的构造函数 Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。 Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。
闭包之bind方法
一个实例
<?php /** * 复制一个闭包,绑定指定的$this对象和类作用域。 * * @author 疯狂老司机 */ class Animal { private static $cat = "cat"; private $dog = "dog"; public $pig = "pig"; } /* * 获取Animal类静态私有成员属性 */ $cat = static function() { return Animal::$cat; }; /* * 获取Animal实例私有成员属性 */ $dog = function() { return $this->dog; }; /* * 获取Animal实例公有成员属性 */ $pig = function() { return $this->pig; }; $bindCat = Closure::bind($cat, null, new Animal());// 给闭包绑定了Animal实例的作用域,但未给闭包绑定$this对象 $bindDog = Closure::bind($dog, new Animal(), 'Animal');// 给闭包绑定了Animal类的作用域,同时将Animal实例对象作为$this对象绑定给闭包 $bindPig = Closure::bind($pig, new Animal());// 将Animal实例对象作为$this对象绑定给闭包,保留闭包原有作用域 echo $bindCat(),'<br>';// 根据绑定规则,允许闭包通过作用域限定操作符获取Animal类静态私有成员属性 echo $bindDog(),'<br>';// 根据绑定规则,允许闭包通过绑定的$this对象(Animal实例对象)获取Animal实例私有成员属性 echo $bindPig(),'<br>';// 根据绑定规则,允许闭包通过绑定的$this对象获取Animal实例公有成员属性
总结:
- bind函数:
- 参数1($closure) : 表示闭包函数
- 参数2($newthis): 相当于在函数内/外调用的区别,传类的实例表示在内部调用,NULL相当于在外部调用
- 参数3($newscope): 相当于类和实例调用的区别,函数的作用域, 传类表示静态调用方式,内部可以“类名::属性”的方式使用;实例表示实例调用方式,内部可以“->”
-
Redis的bind的误区
2018-10-27 12:00:55今天在搭建Redis服务集群的时候,发现自己一直以来对Redis中bind的理解的一个误区。 在今天以前,我一直认为Redis中的配置文件中的bind的作用是:用来限制Redis服务器用来接收来自哪些服务器(IP地址)的Redis连接... -
redis bind
2018-04-04 13:40:16先说一句精华的话:bind配置了什么ip,别人就得访问bind里面配置的ip才访问到redis服务。一台主机,可能会有多张网卡,或者对应多网段内网的Ip,公网IP等,也就意味着其他机器可以通过多个IP地址访问到这台主机。... -
C++bind
2017-04-30 23:11:59C++11中提供了std::bind。bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的。 bind的思想实际上是一种延迟计算的思想,将可调用对象保存起来,然后在需要的时候再调用。而且这种绑定是非常... -
C++11 bind取代bind1st,bind2nd的用法
2018-09-14 10:44:05bind2nd的用法: int a[] = {1, 2, 3, 4}; std::vector< int> arr(a, a + 4); // 移除所有小于3的元素 arr.erase( std::remove_if( arr.begin(), arr.end(), std::bind2nd( std::less< ... -
STL中的bind 与boost中的bind
2019-05-27 15:55:01STL中的bind 与boost中的bind C++11 中的std::function和std::bind boost::bind 函数绑定器 -
-
JavaScript之bind及bind的模拟实现
2018-03-23 23:49:38在JavaScript编程中有很多改变this的方法和方式,今天说的bind与众不同,像call、apply改变this指向的时候会直接执行。而bind则不是,话不多说,直接进入正题。 bind bind是函数原型上的一个方法,作用是改变this... -
详解bind函数
2020-12-14 20:16:25之前将call和apply的具体实现模拟写了一遍,今天就将bind函数的具体实现来写一遍看看 bind:一句话描述:将创建一个新函数,当这个函数被调用时,传入的第一个参数作为新的this对象,后续的参数作为绑定函数的参数 ... -
ng-bind ng-bind-html ng-bind-template 区别
2017-01-07 20:00:38ng-bind:变量(html标签无效) ng-bind-html:变量(html标签有效) ng-bind-template:表达式(html标签无效) -
DNS BIND之bind-chroot
2015-04-14 23:40:35bind-chroot是bind的一个功能,使bind可以在一个chroot的模式下运行.也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已.这样做的目的是为了提高安全性.因为在chroot的模式下,... -
bind 架构
2015-06-03 07:15:31本篇主要介绍bind实现的架构不涉及具体细节分析。后续会不断完善。这个系列的文章大多源于网络和自己的总结。关于bind分析的文章网络不是很多,由于我的水平有限,错误在所难免。欢迎大家批评指正。概述1.Bind中的... -
bind安装,rndc和bind升级
2016-02-24 11:11:27有用的东西,收藏原文地址:bind安装,rndc和bind升级作者:海阔天空1.原系统自带rpm格式安装的bind9.2.4。使用rpm -q检查出来版本信息,为了测试二进制安装bind,首先使用rpm -e删除bind9.2.4. [root@jww etc]# ... -
javascript bind
2014-05-31 14:17:06最近在代码中经常看到bind关键词,之前没用过啊,这里记录下。从微软复制过来的例子: // Define the original function. var checkNumericRange = function (value) { if (typeof value !== 'number') return ... -
bind方法
2016-03-15 00:28:40bind方法: 创建一个新函数,借用旧函数,并提前绑定this和参数值。 何时使用: 在创建方法时,就需要提前绑定this对象和参数值 如何使用: 2步: 1. 使用bind方法,基于现有函数创建新函数,并绑定this对象和... -
Boost库之bind
2017-05-10 14:56:32boost bind -
v-bind与v-bind:value的区别
2020-04-24 16:56:30这是v-bind的两种使用方式,使用时最好不要颠倒,其中v-bind=绑定的不是对象时,运行时会报错,v-bind:value=绑定的是对象时,运行没问题,但如果该处html被重写下(比如下拉搜索框中的input值)... -
DNS BIND之bind-utils
2015-04-15 00:26:22bind-utils是bind软件提供的一组DNS工具包,里面有一些DNS相关的工具。主要:dig,host,nslookup,nsupdate。使用这些工具可以进行域名解析和DNS调试工作。 -
v-bind 与 v-bind:name 的区别
2019-08-23 12:02:46v-bind 不能多个同用, 后面的才生效 v-bind=“obj” 传入的是键值对 v-bind:name=“value” 传入的是值 v-on 是类似的 v-on 不能多个同用, 后面的才生效 v-on=“obj” 传入的是键值对 v-on:name=“value” 传入的是... -
js手写bind
2018-10-18 02:44:45前端面试题之JS手写bind 首先解释一下bind: bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。(来自于 MDN ... -
socket_bind():无法绑定地址[99] (socket_bind(): unable to bind address [99]
2019-05-08 14:04:24socket_bind():无法绑定地址[99] (socket_bind(): unable to bind address [99] PHP Warning: socket_bind(): unable to bind address [99]: Cannot assign requested address insockets_test.php on line 45 这... -
socket编程bind问题--两个bind
2018-05-22 12:00:49问题描述:不存在从 “std::_Bind -
js bind方法
2019-03-26 22:51:46MDN上的解释是: bind()函数会创建一个新绑定函数,当绑定函数被调用时,会以bind()的第一个参数作为运行时的this,之后的一系列参数加上绑定函数运行时本身的参数按顺序作为原函数的参数。 1.bind方法绑定对象,... -
如何实现一个bind方法,手写一个bind
2019-11-29 08:47:29bind()方法: 会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数。(来自于 MDN ) 此外,bind实现需要考虑实例化后对... -
bind实现原理
2018-03-23 16:32:21bind官方描述bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体(在 ECMAScript 5 规范中内置的call属性)。当目标函数被调用时 this 值绑定到 bind() 的第一... -
failed to bind proxy port 8888 JVM_Bind和火狐代理浏览器
2020-05-28 16:31:54记录遇到的问题: charles收费 charles在火狐的扩展被下架了。 failed to bind proxy port 8888 JVM_Bind
-
云计算基础-Linux系统管理员
-
Python-3.7.9.tar.xz
-
C++异步串口通信
-
三维地图GIS大数据可视化
-
User_Class_Add_Model.py
-
2020-10-15-web新手区.md
-
JavaEE框架(Maven+SSM)全程实战开发教程(源码+讲义)
-
php 正则判断是否是手机号码
-
ESP8266EX芯片文档
-
仿真钢琴-javascript实战
-
在CentOS上安装Docker
-
OpenCV 基础
-
android笔试面试和实战课程
-
心理咨询与诊断系统.
-
最长公共子序列(LCS)
-
VB6.0中存储日期+时间.txt
-
百度翻译最新版的最精简版(功能完好).rar
-
NPOI.Excel.2.1.1.7z
-
转行做IT-第6章 IDEA、方法
-
微信支付2021系列之付款码支付一学就会java版