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
㈠ 语法