初探iptables自动加载模块原理 iptables使用dlopen加载动态库,每个库中都定义了void _init(void)函数,在使用dlopen加载库的时候系统会调用_init函数,在_init函数中调用xtables_register_match对模块进行注册。iptables这种动态加载模块的方式很适合做定制开发,所以我就自己摸索了下。我自己写了一个测试的例子:gcc -O2 -Wall -fPIC -
协议分析之UDP旁路阻断 udp是一种无连接的传输层协议,不像tcp在传输数据前要先发起连接,因此要可以说没有办法阻断udp之间的通讯。有一些资料称可以伪造目的主机发出目的端口不可达的ICMP报文,从而误导源主机中止与目的主机的udp通讯,伪造icmp目的端口不可达的代码如下: int ForgedICMP(char *srcIP, char *dstIP, void *forgedData, int count){ char buff[2048] = {0}; char *ptr = buff;
协议分析之TCP旁路阻断 一、阻断未建立起来的连接 我们知道TCP的建立要经过3次握手,假设客户端C向服务器S请求连接 1、C发送带有SEQ_C(随机)初始序列号的SYN报文给S 2、S回复带有SEQ_S(随机)初始序列号和确认序列号ACK_S(必须是SEQ_C+1)的SYN报文给C 3、C回复确认序列号ACK_C(取值为SEQ_S)给S 整个过程如果正确的话,连接将会建立。 通常需要进行阻断的情况是审计控制系统旁路监听内网。旁路监听的方式一般是将主交换机的数据镜像到控制系
oracle表分区 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 Oracle中提供了以下几种表分区: 一、范围分区:这种类型的分区是使用列的一组值,通常将该列成为分区键。 示例1:假设有一个CUSTOMER表,表中有数据200000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储100000行,我们将每个分区保存到单独的
HTTP协议中的Tranfer-Encoding:chunked编码解析 HTTP协议中的Tranfer-Encoding:chunked编码解析 当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域来确定报文体长度。 通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。chunked编码是
获取http的gzip内容并解压 08年在csdn上面写了一个帖子关于解压http的gzip内容的,一直以来有不少的程序员前仆后继,持续的遇到同样的问题,正如我08年遇到的时候看的都是03 04年的帖子一样,现在把论坛上面的资料整理一下放到这里,希望能这个问题不会再困扰其他的程序员。------------------------------寻找gzip 获取一个网页数据返回的编码类型是gzip,我该怎么解压缩 ?HTTP
模仿javascript中的alert 和confirm弹出框 table.messagebox {FONT: bold 11px tahoma,arial,verdana,sans-serif; BORDER-LEFT: 0px; color: #000000; background-color: #CDDEF3; border-left: 1px solid #99BBE8; border-bottom: 1px solid #99BBE8; bord
web server服务程式编写 本程序是一个提供特殊服务的Web Server。该程序是一个Daemon程序,用单进程+I/O多路转换(select)的方式接收Http的Get请求,请求中是一个字符串(可以是数字或者字母),返回一个PNG格式的图片,整个过程符合Http 1.0协议。 本程序类似于网站上常用的生成“验证码”的程序。 本程序在FreeBSD环境下开发完成,并可同时在FreeB
cgi文件下载 用cgi做服务器在嵌入式开发中会遇到要下载一个文本文件,浏览器默认打开,而我们想下载到本地来。通过下面的代码告诉浏览器当前文件是要下载的,cgi通过printf将数据输出到stdout中,mini_httpd从stdout中接收数据发送到浏览器。这种方式也避免了像这种直接通过访问文件路径http://server/test.txt 下载,把文件暴露出来的问题。 void dow
怎样生成CAB 一、制作cab包: 在命令提示行中执行 cabarc -s 6144 n Remtcardsetup.cab Remtcard.dll remtcard.inf -s 6144:为签名留下6k的空间 .inf文件的格式 [version] signature="$CHICAGO$" AdvancedINF=2.0
早上起来空腹喝白开水 早上起来空腹喝白开水 喝白开水的好处:滋养皮肤,健康长寿新鲜的白开水是最佳选择。白开水是天然状态的水经过多层净化处理后煮沸而来,水中的微生物已经在高温中被杀死,而开水中的钙、镁元素对身体健康是很有益的。有研究表明,含钙、镁等元素的硬水有预防心血管疾病的作用。有不少人认为喝淡盐水有利于身体健康,于是晨起就喝淡盐水,这种认识却是错
字典树(支持大小写) #include #include #define MAX_LETTER 52 typedef struct tire { struct tire *next[MAX_LETTER]; char data; char cnt; }*_tire; void init_tire(_tire root, char *str
可拖拽DIV 可拖拽DIV .bg{ height:18px; padding:3px; background:#147B95; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff,endColorStr=#147B95,style=1;);
用div模拟ALT的提示效果 在网页设计过程中经常会用到标签的alt,title提示效果,但往往满足不了要求。昨天一个同事在设计页面时刚好需要用到这种提示效果,我就帮他用div做了一个。 var innerhtm = ;document.write(innerhtm);function showTitle(ev,title, content) { ev = ev||window.event;
pagination(一个封装好的分页导航) 最近想找一个好看点的分页显示,在国外的一个网站上看到了这样一个分页样式,挺喜欢的,就把它封装成一个可以复用的类 代码如下:text.htmlhtml> title>测试title> meta http-equiv="pragma" content
JavaMail收发邮件(包含附件) import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.InputStream;import ja
使用telnet登陆smtp服务发邮件(带身份验证)和Base64加密算法源码(java版) 转载:使用telnet登陆smtp服务发邮件(带身份验证)。昨天,公司的合作伙伴新增了一台 FC4 ,(Apache1 + php5 + mysql +exim)的服务器,要把一个PHP程序挂到新增的服务器上,程序在新增的服务器上不能发信,我是使用比较简单的方法 mail() 函数来发信的,配置了 php.ini 里面的 sendmail_path=/usr/sbin/exim
用jsp发送邮件 Properties props=new Properties();props.put("mail.smtp.host","smtp.163.com");props.put("mail.smtp.auth","true");Session s = Session.getDefaultInstance(props);s.setDebug(true);MimeMessage message