canvas教程

分区truncate操作的介绍及对全局索引和空间释放影响的案例解析(2)

字号+ 作者:H5之家 来源:H5之家 2017-07-03 16:00 我要评论( )

bezierCurveTo() 为一个画布的当前子路径添加一条三次贝塞尔曲线。这条曲线的开始点是画布的当前点,而结束点是 (x, y)。两条贝塞尔曲线控制点 (cpX1, cpY1) 和 (cpX2, cpY2) 定义了曲线的形状。当这个方法返回的时

        bezierCurveTo() 为一个画布的当前子路径添加一条三次贝塞尔曲线。这条曲线的开始点是画布的当前点,而结束点是 (x, y)。两条贝塞尔曲线控制点 (cpX1, cpY1) 和 (cpX2, cpY2) 定义了曲线的形状。当这个方法返回的时候,当前的位置为 (x, y)。

    例子:    

     <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="300" height="300" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag. </canvas> <script> var c=document.getElementById("myCanvas"), ctx=c.getContext("2d"); ctx.beginPath(); ctx.moveTo(75,40); ctx.bezierCurveTo(75,37,70,25,50,25); ctx.bezierCurveTo(20,25,20,62.5,20,62.5); ctx.bezierCurveTo(20,80,40,102,75,120); ctx.bezierCurveTo(110,102,130,80,130,62.5); ctx.bezierCurveTo(130,62.5,130,25,100,25); ctx.bezierCurveTo(85,25,75,37,75,40); ctx.stroke(); </script> </body> </html>

5.综合例子:

<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="300" height="300" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag. </canvas> <script> var c=document.getElementById("myCanvas"), ctx=c.getContext("2d"); function draw() { roundedRect(ctx,12,12,150,150,15); roundedRect(ctx,19,19,150,150,9); roundedRect(ctx,53,53,49,33,10); roundedRect(ctx,53,119,49,16,6); roundedRect(ctx,135,53,49,33,10); roundedRect(ctx,135,119,25,49,10); ctx.beginPath(); ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false); ctx.lineTo(31,37); ctx.fill(); for(i=0;i<8;i++){ ctx.fillRect(51+i*16,35,4,4); } for(i=0;i<6;i++){ ctx.fillRect(115,51+i*16,4,4); } for(i=0;i<8;i++){ ctx.fillRect(51+i*16,99,4,4); } ctx.beginPath(); ctx.moveTo(83,116); ctx.lineTo(83,102); ctx.bezierCurveTo(83,94,89,88,97,88); ctx.bezierCurveTo(105,88,111,94,111,102); ctx.lineTo(111,116); ctx

    

[2]基于iptables的网桥防火墙的搭建

    来源: 互联网  发布时间: 2013-11-05

基于iptables的网桥防火墙的搭建

目标: 在不改变网络拓补结构的前提下,实现一个防火墙,对经过该防火墙的数据进行过滤。在此,我们主要是想对所有与服务器进行通信的数据进行过滤。结构图如下:


服务器和左边的Internet可以处于同一个局域网,比如网段都为: 192.168.1.0。另外可以增加一个网卡作为管理,这个管理的口可以不必接入Internet中,这样可以达到无法对网桥进行攻击的目的。由上图可以看出我们使用了三块网卡,其实只用两块网卡也可以实现,只是需要给网桥设置一个IP,然后通过这个IP登录。

         实现这个系统的环境:

         系统: ubuntu9.04   内核版本:2.6.28

         防火墙: iptables,版本:1.4.16.3   (用1.4.13的时候出过问题)

         编译器:4.3.3

 

原理简介:在linux 2.6的内核中已经自带有netfilter可以对网络数据包进行过滤,只是如果要设置过滤规则,那必须安装用户端管理软件,这就是ebtables和iptables,其中ebtables工作于数据链路层,而iptables既可以工作于数据链路层也能工作于网络层,如果同时使用了ebtables和iptables那ebtables的过滤总是在iptables的过滤之前执行。

具体原理可以参考:(差不多是官方文档来源于)

Linux内核bridge浅析:

iptables 原理及应用详解:

linux透明防火墙(网桥模式):

 

首先搭建网桥,在我们的设备中有三块网卡,其中eth0用于管理,eth1和eth2添加到网桥中。命令如下:

 ifconfig eth2 0.0.0.0 up     #启动eth2, 并把IP设为0.0.0.0(数据链路层不需要IP)

 ifconfig eth1 0.0.0.0 up

 brctl addbr br0            #添加网桥

 brctl addif br0 eth2        #把eth2添加到网桥中

 brctl addif br0 eth1

 ifconfig br0 0.0.0.0 up   #这里没有给网桥设置IP,如果是两块网卡,那可以设个IP

 

OK,接下来就是配置文件了,这个还是比较重要的,要不下次开机,网桥会不好使的。配置文件/etc/network/interfaces内容如下:

auto lo

iface lo inet loopback

 

auto eth0

iface eth0 inet dhcp

 

auto eth1

iface eth1 inet manual

 #      address 0.0.0.0

 #      network 0.0.0.0

 #      netmask 255.255.255.0

 #      broadcast 255.255.255.255

 #      gateway 0.0.0.0

 

auto eth2

iface eth2 inet manual

 #      address 0.0.0.0

 #      network 0.0.0.0

 #      netmask 255.255.255.0

 #      broadcast 255.255.255.255

 #      gateway 0.0.0.0


auto br0

iface br0 inet dhcp

 #      address 10.65.160.104

 #      network 10.65.128.0

 #      netmask 255.255.128.0

 #      broadcast 10.65.255.255

 #      gateway 10.65.156.27

#下面这一行必须要!即是把eth1和eth2添加到网桥中

       bridge_ports eth1 eth2  

 #     bridge_fd 9

 #      bridge_hello 2

 #      bridge_maxage 12

 #      bridge_stp off

 

上面的配置文件,如果不好使,那可以把dhcp换为manual或者把manual换为dhcp试试,注释掉的部分是可选项,可以参考:

各网卡的配置信息可以通过ifconfig命令查看。

经过上面这些,开机后如果正常的话,网桥是好使了的,另外eth1和eth2没有IP信息,其它的三个口(eth0, br0, lo)都有IP地址的。

 

上面这些实现了网桥,但该网桥还不能转发数据,因为在默认情况下,linux系统是不能转发数据的,我们可以通过修改配置文件/etc/sysctl.conf来实现转发,修改地方如下:

# Uncomment the next line to enable packetforwarding for IPv4

net.ipv4.ip_forward=1  #去掉这一行最前面的注释(#号)

# Uncomment the next line to enable packetforwarding for IPv6

net.ipv6.conf.all.forwarding=1  #去掉这一行最前面的注释(#号)

这个可以参考:

 

OK,网桥基本上没有问题了,接下来就是安装iptables和编写过滤规则了。过程如下:

命令:apt-get installiptables

如果这样安装的iptables版本不对或者使用时有问题,那可以google搜索iptables或者直接去下载源码,然后自己编译安装。

         安装命令如下:

         tar  xvf iptables-1.4.16.3.tar.gz

         cd   iptables-1.4.16.3

         ./configure 

         make  && make install

默认的安装路径为/usr/local  如果不懂可以通过./configure  --help查看,安装过程如果权限有问题,那请切换到root用户下执行或用sudo如 sudo make install

OK,iptables安装好了,之后切换到root就可以执行iptables命令了。ebtables安不安装就随便了,一般可以不用安装的。

 

         接下来就是编写过滤规则了,这个可以参考:

编写的过滤规则我们肯定想保存到一个文件中,开机的时候自动加载过滤规则,要不过滤只是保存在内存中,下次开机后就没有了。

保存命令: iptables-save –c  > /etc/iptables-ruleset   #文件名可以自己定

自动加载: 在/etc/rc.local文件中(exit 0之前)加入如下一行:

                      iptables-restore  < /etc/iptables-ruleset

这里需要注意的就是保存的文件,和加载的必须是同一个文件,所以如果不能自动加载,那一定先检查下,这两个文件是否一致!!

 

到此,网桥防火墙的搭建搞定,后面要做的就是想把拦截的日志记录到mysql或者日志文件中,如果是记录到mysql中,那还可以弄一个web端来进行访问。


附iptables过滤流程图如下:


作者:DLUTXIE 发表于2013-1-1 15:42:27 原文链接

阅读:54 评论:0 查看评论


    

[3]分区truncate操作的介绍及对全局索引和空间释放影响的案例解析

    来源: 互联网  发布时间: 2013-11-05

环境:

[oracle@localhost ~]$ uname -r 2.6.18-308.el5xen [oracle@localhost ~]$ sqlplus -v SQL*Plus: Release 10.2.0.1.0 - Production


      ㈠ 语法

                        

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Canvas学习:save()和restore()

    Canvas学习:save()和restore()

    2017-07-03 16:02

  • canvas学习心得之路径

    canvas学习心得之路径

    2017-07-03 15:01

  • canvas学习总结三:绘制路径-线段,canvas线段

    canvas学习总结三:绘制路径-线段,canvas线段

    2017-07-03 11:10

  • html5 Canvas裁剪图片

    html5 Canvas裁剪图片

    2017-07-02 14:04

网友点评