选择特殊符号
选择搜索类型
请输入搜索
只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一的。 进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP -s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。这样,就不会出现IP地址被盗用而不能正常使用网络的情况,可以有效保证小区网络的安全和用户的应用。 注意:ARP命令仅对局域网的上网代理服务器有用,而且是针对静态IP地址,如果采用Modem拨号上网或是动态IP地址就不起作用。 不过,只是简单地绑定IP和MAC地址是不能完全的解决IP盗用问题的。作为一个网络供应商,他们有责任为用户解决好这些问题之的后,才交给用户使用,而不是把安全问题交给用户来解决。不应该让用户来承担一些不必要盗用的损失。 作为网络供应商,最常用也是最有效的解决方法就是在IP、MAC绑定的基础上,再把端口绑定进去,即IP-MAC-PORT三者绑定在一起,端口(PORT)指的是交换机的端口。这就需要在布线时候做好端口定时管理工作。在布线时应该把用户墙上的接线盒和交换机的端口一一对应,并做好登记工作,然后把用户交上来的MAC地址填入对应的交换机端口,进而再和IP一起绑定,达到IP-MAC-PORT的三者绑定。这样一来,即使盗用者拥有这个IP对应的MAC地址,但是它不可能同样拥有墙上的端口,因此,从物理通道上隔离了盗用者。
方法: IP设置1 在电脑右下角也就是工具栏找到网络连接图标,把这个图标用鼠标左键点击一次,打开。 IP设置2 在打开的新导航里找到所连接的网络,用鼠标右键点击一次,打开。 IP设置3 在网络打开的页...
需要电话4000166166求助处理,客服会远程帮你检测处理好的。
您可以连线官方客服求助的 哒哒客服是在线客服,可以远程的 新干线首页就有的
MAC地址与交换机端口的绑定——交换机的端口安全配置
人们一谈到局域网的安全问题,就自然会想到防火墙和路由器,而它们只能用于阻止外网计算机对内部网络的恶意攻击,对内部网络的攻击就没有办法了,因此不能完全依靠防火墙来实现整个局域网的安全了。比如ARP和DDOS,这些恶意程序不仅伪装巧妙而且无处不在,一旦局域网内某台计算机感染了病毒,就会造成大量的计算机掉线甚至整个网络都会瘫痪!而防火墙和路由器虽然可以利用一些策略来判断哪些数据包带有DDOS攻击的特征,但它必须在收到这些数据包之后才能对数据包进行分析,而这些数据包在收过来的时候其实就已经占用了LAN口的带宽资源,由于防火墙和路由器
网络核心交换机与电脑IP地址绑定
怎样设置网络核心交换机实现对局域网所有电脑的 IP-MAC 定地址绑 IP 地址与 MAC 地址的关系: IP 地址是根据现在的 IPv4 标准指定的, 不受硬件限制比较容 易记忆的地址, 长度 4 个字节。而 MAC 地址却是用网卡的物理地址, 保存在网卡的 EPROM 里面,与硬件有关系,比较难于记忆,长度为 6 个字节。 虽然在 TCP/ IP 网络中,计 算机往往需要设置 IP地址后才能通讯, 然而,实际上计算机之间的通讯并不是通过 IP 地址, 而是借助于网卡的 MAC 地址。 IP 地址只是被用于查询欲通讯的目的计算机的 MAC 地址。 ARP 协议是用来向对方的计算机、网络设备通知自己 IP 对应的 MAC 地址的。在计算机的 ARJ 缓存中包含一个或多个表,用于存储 IP 地址及其经过解析的以太网 MAC 地址。一台 计算机与另一台 IP 地址的计算机通讯后,在 ARP 缓
将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding.|
Linux的bonding驱动程序提供了一个方法,能将多个网络接口聚合成一个单一的逻辑上绑定了的网络接口,这种方法通常取决与使用的模式:一般来说,模式提供了热备份(hot standby)和负载平衡(load balancing)服务!此外,链路完整性监控(link intergrity monitor)也是必须的!对于重要的应用bonding可以通过hot standby来提供failover特性,提高系统的可靠性。而对于像文件服务器这样的对网络要求很高的场合,bonding可以极大的提高网络IO性能。 以上提到的Bonding技术应该是几个不同的领域,关于Bonding技术在显示器方面采用的主要作用就是强光下可视、减震、防尘、防水、防结、防碱、抗UV等性能要求,运用此技术可达到阳光下可视的效果,并能移除液晶屏前方的[温室热效应],使显示器的散热系统设计更为容易。
hi大家好,本周C4D公开课又要和大家见面咯,这周我们的主题是 C4D xpresso 汽车绑定。
直播时间:6.28(明天)下午2:00
之前有粉丝反馈说想听听关于汽车方面的课,所以才有了这次的公开课的主题,涉及C4D、汽车、动画绑定等。
大家能不缺席就不要缺席哈,参与直播和老师互动,及时提问,效果会更好哦~
群号:316599133
前言
在前端中,视图层和数据层需要进行单向或者双向数据绑定,大家都已经不陌生了,有时候 2D 做的比较顺了之后,就会想要挑战一下 3D,不然总觉得痒痒的。这个 3D 机架的 Demo 我觉得非常有代表性,首先,3D 机架用途非常广,尤其是在电信行业,就算不是机架,在比如工业方面 3D 模型以及数据绑定的应用也是非常广泛的,毕竟现在工业物联网已经是大趋势了。
效果图
上面动图中,闪烁灯是在不断变化的,由于需要显示的效果美观一点,也实际一点,我截的图还是比较完整的,但是这个闪烁的部分有点看不清楚(cnblog 中放太明显的外链容易被移出首页啊!!!等会再发!)。
代码实现
虽然上面 gif 图中显示的一个是 2D 的一个是 3D 的,但是构建的步骤以及需要的内容是一样的,所以本文只针对 3D 的模型进行代码实现。
场景搭建
搭建一个 3D 场景是非常快速的,只需要三行代码:
dm = newht.DataModel(); //创建一个数据容器 数据容器也可以通过 g3d.getDataModel() 获取g3d = newht.graph3d.Graph3dView(dm); //创建一个 3D 场景,将数据容器作为参数传递进去,这样数据容器中的内容就可以显示在 3D 场景中了g3d.addToDOM(); //将 3D 场景添加到 body 体中3D 机架模型构建
虽然可以叫设计师直接给我一个 obj 格式的模型,但是我觉得这个比较简答,还是不要麻烦人家了。。。首先是创建一个六面体,模型上面的贴图是我以前用的一个 json 格式的文件,用来作为这个六面体的正面贴图,这些部分都是写在 json 文件里面的,我先截取一小部分的 json 内容,然后用 js 代码复现:
{ "c": "ht.Node", //一个 ht.Node 类型的元素"i": 1277, //id"p": { //通过 set/get 来设置/获取的元素的部分。如 setPosition/getPosition"tag": "service", //设置元素标签 用来作为唯一标识"image": "symbols/机柜.json", //设置节点图片"rotationX": 1.5708, //设置节点 X 轴旋转角度"position": { //设置节点位置"x": 0, "y": 225}, "anchor": { //设置节点锚点"x": 0.5, "y": 0.54}, "anchorElevation": 1, //设置节点 y 轴锚点"width": 507, //设置节点宽度"height": 980, //设置节点长度"tall": 450, //设置节点高度"elevation": 451//控制Node图元中心位置所在3D坐标系的y轴位置}, "s": { //设置图元的 style 样式,HT 预定义的一些样式属性,通过 node.s('all.color') 获取和设置节点的样式"all.color": "#DDDDDD", //设置节点六面颜色"top.image": "symbols/机柜.json", //设置节点顶部图片"front.visible": true, //设置节点正面是否可见"back.visible": true, "left.visible": true, "right.visible": true, "bottom.visible": true} }
这部分的 json 内容大体上就是创建了一个 ht.Node 节点,然后对这个节点设置了一些属性,包括节点坐标,节点的大小,以及一些 style 样式设置。
那么,如何用代码来创建这样一个节点呢?
varnode = newht.Node(); //创建一个 ht.Node 类型的节点node.setTag( 'service'); //设置节点的标签node.setImage( 'symbols/机柜.json'); //设置节点图片node.setRotationX( Math.PI/ 2); //设置节点x轴旋转node.setPosition( 0, 225); //设置节点位置node.setAnchor( 0.5, 0.54); //设置节点锚点node.setAnchorElevation( 1); //设置节点y轴方向的锚点node.setWidth( 507); //设置节点的宽度node.setHeight( 980); //设置节点的长度node.Tall( 450); //设置节点的高度node.setElevation( 451); //控制Node图元中心位置所在3D坐标系的y轴位置node.s({ //设置节点样式'all.color': '#ddd', //六面颜色'top.image': 'symbols/机柜.json', //节点顶部图片'front.visible': true, //设置节点正面可见'back.visible': true, 'left.visible': true, 'right.visible': true, 'bottom.visible': true});
其实整个 json 就是由多个这种类型的图元组合而成的。我们来拆析一下,整个 3D 机架实际上是由十个图元组合而成的,第一个是整体的 3D 机柜(也就是我们上面 json 内容中创建的部分),剩下的九个都是需要动态变化闪烁灯的设备,也就是我红框框起来的部分:
http://www.hightopo.com/demo/serviceShow/
这些设备的创建方式跟上面的 3D 机架是类似的,只不过对应的节点尺寸小点,贴图不一样,坐标不一样罢了。但是下面的这九个节点的贴图似乎有点不一样?上面有闪烁的灯,并且不止一盏!怎么动态获取他们呢?
矢量–数据绑定
不得不说到矢量这个概念。矢量在 HT for Web 中是矢量图形的简称,常见的 png 和 jpg 这类的栅格位图, 通过存储每个像素的颜色信息来描述图形,这种方式的图片在拉伸放大或缩小时会出现图形模糊,线条变粗出现锯齿等问题。 而矢量图片通过点、线和多边形来描述图形,因此在无限放大和缩小图片的情况下依然能保持一致的精确度。
这些有点都是次要的,最重要的是这个矢量可以进行数据绑定(这个数据绑定是绑定到节点中的),而且绑定方式非常容易!
矢量采用 json 格式描述,使用方式和普通的栅格位图一致,通过 node.setImage(‘hightopo.json’) 或者 node.setIcon(‘hightopo.json’) 等设置到数据模型中。
矢量 json 描述必需包含 width、height 和 comps 参数信息:
width 矢量图形的宽度 height 矢量图形的高度 comps 矢量图形的组件 Array 数组,每个数组对象为一个独立的组件类型,数组的顺序为组件绘制先后顺序由于这张图绘制的还是比较复杂的,所以我就将设置了数据绑定的矩形部分的矢量绘制代码粘贴出来:
{ "width": 48, //一个矢量图标必备的宽度 矢量详细内容请参考 HT for Web 矢量手册"height": 262, //一个矢量图标必备的高度"comps": [ //一个矢量图标必备的 Array 数组组件{ //数组组件中的第一个元素"type": "rect", //类型为矩形"background": { //设置矩形背景色"func": "attr@rectBg1", //HT 用一个带func属性的对象替换以前的参数值 这里就是进行数据绑定的地方"value": "rgb(255,0,0)"//如果 func 值为 undefined 或者 null 时,采用这个值}, "shadow": true, //设置“阴影”"shadowColor": { //“阴影”颜色"func": "attr@shadowColor1", // 这边将“阴影”也进行了数据绑定,为的是能够实现灯“发光”的效果"value": "rgba(255,0,0,0.35)"//设置备选值}, "shadowOffsetX": 0, //设置阴影横轴偏移量"shadowOffsetY": 0, //设置阴影纵轴偏移量"rect": [ //设置该组件的宽高以及坐标4.38544, //x 轴坐标23.52679, //y 轴坐标14.46481, //width 组件宽度6.1554//height 组件高度] } ] }
因为一个矢量图形中有 5 个“闪烁灯”,所以我添加了 5 个组件,也就是在 comps 参数里面添加了五个元素,绑定的数据不同,为了省事,我将绑定的数据名都设置为“rectBg”后面加一个数字,这些数字依次递增。
我们就是将这样一张矢量图设置为节点的 front.image 作为节点正面显示图的:node.s(‘front.image’, ‘symbols/内部设备2.json’)。
JSON 反序列化
会不会有人好奇 json 文件里面的内容是如何转换成 3D 模型的?
说实在的,步骤依然很简单:
ht. Default.xhrLoad( 'scene/service3d.json', function(text){//xhrLoad 函数是一个异步加载文件的函数dm.deserialize(text); //反序列化数据容器,解析用于生成对应的Data对象并添加到数据容器 这里相当于把 json 文件中生成的 ht.Node 节点反序列化到数据容器中,这样数据容器中就有这个节点了});
由于 xhrLoad 函数是一个异步加载函数,所以如果 dm 数据容器反序列化未完成就直接调用了其中的节点,那么会造成数据获取不到的结果,所以一般来说我是将一些逻辑代码写在这个函数内部,或者给逻辑代码设置 timeout 错开时间差。
首先,由于数据都是存储在 dm 数据容器中的(通过 dm.add(node) 添加的),所以我们要获取数据除了可以通过 id、tag 等独立的方式,还可以通过遍历数据容器来获取多个元素:
varinfos = [ { shadowColor: 'shadowColor1', background: 'rectBg1'}, { shadowColor: 'shadowColor2', background: 'rectBg2'}, { shadowColor: 'shadowColor3', background: 'rectBg3'}, { shadowColor: 'shadowColor4', background: 'rectBg4'}, { shadowColor: 'shadowColor5', background: 'rectBg5'} ]; varlen = infos.length; //获取数组中的长度vardatas = dm.toDatas( function(d){returnd.getDisplayName() === 'device'; }); //以过滤函数构建新的元素集合并返回(ht.List 数组类型)setInterval( function(){datas.forEach( function(data){varinfo = infos[ Math.floor( Math.random() * len)]; varshadowName = info.shadowColor; varbgName = info.background; if(data.a(shadowName) === 'rgba(255, 0, 0, 0.35)') { //若节点业务属性“阴影”颜色为红色,则设置为绿色data.a(shadowName, 'rgba(0, 255, 0, 0.35)'); } else{ //若节点业务属性“阴影”颜色为绿色,则设置为红色data.a(shadowName, 'rgba(255, 0, 0, 0.35)'); } if(data.a(bgName) === 'rgb(255, 0, 0)') { //若节点业务属性背景颜色为红色,则设置为绿色data.a(bgName, 'rgb(0, 255, 0)'); } else{ //若节点业务属性背景颜色为绿色,则设置为红色data.a(bgName, 'rgb(255, 0, 0)'); } }); }, 1000);结束语
整体来说这个 Demo 还是比较有价值的,一是快速实现了 3D 机柜模型,二是对模型上的元素进行了数据绑定。只是想让你们知道,清晰的图片绘制没有那么难~ 3D 的世界没有那么难~ 数据绑定也没有那么难!我希望也能让您发现这并不是件难事。